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...