Lesson12 檔案操作

2021-06-14 00:31:04 字數 4079 閱讀 7552

1.

常量指標與指標常量的區分

char ch[5]="lisi";

const char *pstr=ch;//const在*

之前,表明指標指向的內容為常量,即為常量指標,但指標可指向其它變數。

char * const pstr=ch;//const在*

之後,表明指標的位址不能改變,即為指標常量,但指標所指向的內容是可以改變的;

const char * const pstr = ch;

指向常量的常量指標,指標的位址與指向的內容都不可以改變。

2.對檔案讀寫的三種方法

<1>.c

語言file*pfile=fopen("1.txt","w");//引數1

檔案路徑

,只寫檔案則在本工程中,引數

2:開啟模式

fwrite("",1,strlen(""),pfile);//

寫檔案原型

:size_t fwrite(const void *buffer, size_t size, size_t count, file*stream);

在寫完檔案後要使用

fflush(pfile);

或fclose(pfile)

使資料寫入到檔案中,因為

c語言對文

件的操作使用了緩衝檔案系統

,一般如果不手工重新整理緩衝區的話

,直到緩衝區滿後才將資料寫入到檔案中

int fseek(file *stream, long offset, int origin);

stream 

指向file

結構體的指標

offset          

設定偏移量

origin  

指定檔案指標的起始位置

.( seek_set

開始處, seek_cur

檔案當前位置處

, seek_end

檔案的結尾處

)//fseek(pfile,0,seek_set);對於c

語言檔案操作來說

,它有乙個檔案指標

,該指標會隨時根據我們對檔案的操作來移動地

,始終指向檔案下乙個寫入的位置

.當執行定稿操作之後

,檔案指標就指向了所寫資料佔據位置的下乙個位置

.如果希望在寫入資料後

,返回到檔案的開始位置處再寫入資料

,就需要將這個檔案指標移動到檔案開始校園

,這可以利用

fseek

函式實現

//fwrite("ftp:",1,strlen("ftp:"),pfile);

//fwrite("",1,strlen(""),pfile);

char ch[100];

接收檔案中資料字元資料

memset(ch, 0, strlen(ch));

fread(ch, 1, 100, pfile);

fclose(pfile);*/

關閉檔案

//fflush(pfile);

重新整理緩衝區

<2>.c++

中要包括標頭檔案

"fstream.h"

/* ofstream ofs("4.txt");

ofs.write("",strlen(""));

ofs.close();*/

要注意的是

:在讀取檔案時候

rof表示檔案結尾

,,readnext

會將檔案指標指向檔案中下乙個字元

<3<.mfc中用

cfile

類cfiledialog filedlg(false);

filedlg.m_ofn.lpstrtitle="

我的檔案儲存對話方塊

";filedlg.m_ofn.lpstrfilter="textfiles(*.txt)\0*.txt\0all files(*.*)\0*.*\0\0";

filedlg.m_ofn.lpstrdefext="txt";

if(idok==filedlg.domodal())

二進位制檔案和文字檔案

,實際上它們都是以二進位制資料的方式儲存的

,檔案只是計算機內在中以二進位制表示的資料在外部儲存介質上的另一種存放形式

,對於文字檔案來

,它只是一種特殊形式的檔案

,它所存放的第乙個位元組都可以轉換為乙個可讀的字元注意:

寫入和讀取檔案操作的方式要一致

,文字方式寫入就用文字方式讀取

,二進位制方式寫入就用二進位制方式讀取

.面試題

:給你乙個整數,如

:98341,

將這個整數儲存到檔案中

,要求在以記事本程式開啟該檔案時

,顯示是

:98341,<

要注意字元與整型是通用的

,在檔案中字元也是以

ascii

儲存的)

file *pfile = fopen(「3.txt」, 「w」);

char ch[5];

ch[0] = 9 + 48;

ch[1] = 8 + 48;

ch[2] = 3 + 48;

ch[3] = 4 + 48;

ch[4] = 1 + 48;//0

對應的ascii

是48,

fwrite(ch, 1, 5, pfile);//

以這種方式寫入

,在記事本開啟時就是

98341

fclose(pfile);

4.利用

win32 api

函式createfile(),

及writefile()

createfile

函式將建立或開啟下列物件

,並返回乙個用於讀取該物件的控制代碼:檔案

, 管道

, 郵槽

(),

通訊資源

, 磁碟裝置

, 控制項臺,目錄

(僅適用於開啟操作

)

example:

void clesson12view::onfilewrite()

*/ //定義乙個控制代碼變數

handle hfile;

//建立檔案

hfile = createfile("5.txt", generic_write, 0,

null, create_new, file_attribute_normal, null);

//接收實際寫入的位元組資料

dword dwwrites;

//寫入資料

writefile(hfile, "example", strlen("example"), &dwwrites, null);

//關閉檔案控制代碼

closehandle(hfile);

}

4.登錄檔讀寫 1.

對win.ini

的讀寫

//::writeprofilestring("","admin","zhangsan");

/* cstring str;

::getprofilestring("","admin","lisi",

str.getbuffer(100),100);

afxmessagebox(str);*/ 2.

登錄檔的讀寫

hkey hkey;

dword dwage=30;

regcreatekey(hkey_local_machine,"software\\\\admin",&hkey);

regsetvalue(hkey,null,reg_sz,"zhangsan",strlen("zhangsan"));

regsetvalueex(hkey,"age",0,reg_dword,(constbyte*)&dwage,4);

regclosekey(hkey);

以上是寫入

example:

void clesson12view::onregwrite()

void clesson12view::onregread()

Lesson 12 索引快取

單單用頂點快取來繪製圖形的方法在應對複雜圖形的時候非常不科學,顯得複雜而力不從心。也就是說,當物體模型很複雜 頂點數量很大時,僅使用頂點快取繪製圖形會使重複的頂點大大增加,並且direct3d仍需要對這些重複的頂點進行計算,因此需要更多的儲存空間和更大的開銷。這時候,我們頂點快取的紅顏知己 索引快取...

Python學習筆記Lesson1 2

1.python中的語句不使用分號結尾 2.python中 接受輸入可以用 變數名 input 其中input中可以帶引數,例如name input 請輸入使用者名稱 3.python輸出print 可以用逗號連線輸出字元 也可以用 例如print 歡迎回來,name print 歡迎回來,name...

Lesson 12 物件導向上

物件導向的程式語言,關注的是物件,而不注重過程,對於物件導向一切皆物件 物件導向的程式設計思想,將所有功能統一儲存到對應的物件中,要使用某個功能,直接找到對應的物件即可 這種編碼方式比較容易閱讀,並且易於維護,容易復用。但是編寫的過程中不太符合常規的思維,編寫相對麻煩 語法 class 類名 父類 ...