CStdioFile類學習筆記

2021-04-15 01:12:20 字數 2292 閱讀 3276

cstdiofile

類的宣告儲存再

afx.h

標頭檔案中。

cstdiofile

類繼承自

cfile

類,cstdiofile

物件表示乙個用執行時的函式

fopen

開啟的c

執行時的流式檔案。流式檔案是被緩衝的,而且可以以文字方式(預設)或者二進位制方式開啟。

cstdiofile

類不支援

cfile

類中的duplicate

、lockrange

、unlockrange

函式,如果你使用了,會得到

cnotsupportedexception

類的錯誤。

cstringfile

類預設的是按照

text

模式操作檔案。

cfile

類預設的是按照二進位制模式操作檔案。

這裡大致說明一下二進位制模式和

text

模式的區別。

二進位制模式:對於一行的結尾我們必須輸入

」/r/n」

,才能表示回車換行的效果。

text

模式:」/r」

回車的工作是自動完成的,我們只需要寫入

」/n」

即可。所以我們再使用文字模式時要主要,當我們從外部讀入檔案時,

」/r/n」

會被翻譯成

」/n」

,寫入檔案時,我們對於回車換行只需提供

」/n」

,即可,

」/r/n」

會被寫入到檔案中。

m_pstream

成員變數:

開啟檔案的指標。

建構函式:

cstdiofile();

cstdiofile(file *popenstream);

cstdiofile(lpctstr lpfilename, uint nopenflags);

throw(cfileexception);

file *popenstream

:指的是

c執行函式

fopen

呼叫後返回的檔案指標。

lpctstr lpfilename

uint nopenflags

:指的是

cfile

類中所描述的開啟檔案的方式。

virtual lptstr readstring(lptstr lpsz, uint nmax);

throw(cfileexception);

如果使用該函式讀取文字檔案,當遇到

」/r/n」

,停止讀取,並去掉

」/r」

,保留」/n」

,並在字串尾部增加

」/0」

,nmax

的長度包含有

」/0」

字元,

實際的分析如下: 如果

nmax <=

字元數,讀取

(nmax-1)

個字元+0x00;

如果nmax =

字元數+ 1

,讀取nmax

個字元+0x00;

如果nmax >

字元數,讀取

nmax

個字元+0x0a(」/n」) + 0x00;

如果檔案有多行,則當檔案沒有讀完時,返回

not null

,讀到檔案尾,返回

null。

bool readstring(cstring& rstring);

throw(cfileexception);

讀取一行文字到

rstring

中,遇到回車換行符停止讀取,回車和換行符均不讀到

rstring

中,尾部也不新增

」0x00」。

如果檔案有多行,則當檔案沒有讀完時,返回

true

,讀到檔案尾,返回

false。

virtual void writestring(lptstr lpsz);

throw(cfileexception);

將緩衝區中的資料寫入到與

cstdiofile

物件相關聯的檔案中,不支援

cstring

型別資料寫入,結束的

」/0」

不被寫入到檔案中,

lpsz

緩衝區中的所有換行符被替換為回車換行符即

」/n」

轉換為」/r/n」

CStdioFile 類去寫檔案

介紹如何使用 cstdiofile 類去寫檔案。1 my add 2 獲取當前路徑名 3 wchar szpaht max path 4 getmodulefilename null,szpaht,sizeof szpaht 5pathremovefilespec szpaht 67 設定你的檔名 ...

CStdioFile類建立日誌記錄檔案

1,cstdiofile類建立日誌檔案,定義全域性變數,每個需要記錄位置的地方,以當前時間作為檔名稱 log text 全域性變數 cstdiofile g logfile 日誌檔案 cstring filename ctime tm ctime getcurrenttime filename tm...

C vector 類學習筆記

vector容器型別vector容器是乙個模板類,可以存放任何型別的物件 但必須是同一類物件 vector物件可以在執行時高效地新增元素,並且vector中元素是連續儲存的。vector的構造 函式原型 template explicit vector 預設建構函式,vector物件為空 expli...