使用CStdioFile讀寫檔案

2021-05-27 18:57:24 字數 2102 閱讀 8305

cstdiofile類的宣告儲存在afx.h標頭檔案中。

cstdiofile類繼承自cfile類,cstdiofile物件表示乙個用執行時的函式fopen開啟的c執行時的流式檔案。流式檔案是被緩衝的,而且可以以文字方式(預設)或者二進位制方式開啟。

cstdiofile類不支援cfile類中的duplicate、lockrange、unlockrange函式,如果你使用了,會得到cnotsupportedexception類的錯誤。

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

這裡大致說明一下二進位制模式和text模式的區別

二進位制模式:對於一行的結尾我們必須輸入」\r\n」,才能表示回車換行的效果。

text模式:」\r」回車的工作是自動完成的,我們只需要寫入」\n」即可。所以我們再使用文字模式時要主要,當我們從外部讀入檔案時,」\r\n」會被翻譯成」\n」,寫入檔案時,我們對於回車換行只需提供」\n」,即可,」\r\n」會被寫入到檔案中。

建構函式:

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」。

下面是自己寫的乙個小例子

#include

#include

void main()

{cstdiofile file;

file.open("a.txt",cstdiofile::modereadwrite);

file.writestring("太陽當空照");

file.writestring("\n");

file.writestring("小鳥對我笑");

file.writestring("\n");

file.writestring("早早早,你為什麼揹著小書包");

file.writestring("\n");

file.close();

cstdiofile file2;

file2.open("a.txt",cstdiofile::modereadwrite);

cstring str;

while(file2.readstring(str))

{//連續讀取檔案

cout<

使用CStdioFile 讀寫UNICODE文件

一 寫文件 1 建立文件並寫入內容 cpp view plain copy cstring filepath l c unicode.txt cstdiofile wfile if wfile.open filepath,cfile modecreate cfile modewrite cfile ...

使用CStdioFile操作檔案

檔案操作在vc程式設計中使用非常普遍,直接使用cfile對檔案進行操作比較繁瑣,使用繼承自cfile的cstdiofile類就要容易得多,用cstdiofile 來處理字串,是最簡單最好理解的的辦法。本文整理了網上大家使用的各種cstdiofile的操作方法,歸納如下 1.開啟檔案 file.ope...

PHP使用XMLWriter讀寫xml檔案操作詳解

公尺撲科技旗下的多個產品,需要指令碼自動生成sitemap.xml,於是重新溫習一遍php xml讀寫操作。讀寫xml的方式,主要圍繞xmlwriter和xmlreader進行,前者用於生成xml,後者則是用來讀取並解析xml 寫入 xml test xml write.php mimvp.com ...