CStdioFile 類去寫檔案

2021-08-19 18:40:11 字數 1890 閱讀 4538

介紹如何使用 cstdiofile 類去寫檔案。

1

///my add 2//

獲取當前路徑名

3 wchar szpaht[max_path] = ;

4 getmodulefilename(null, szpaht, sizeof

(szpaht));

5pathremovefilespec(szpaht);67

//設定你的檔名

8 cstring strfilename("

demo.txt");

910//將檔名附加在 當前路徑 裡面

11 wcscat_s(szpaht, l"

\\"); ///

知道為啥是l 開頭嗎,因為vs2013工程預設是unicode環境,unicode字串需要 l 開頭的巨集

12wcscat_s(szpaht, strfilename.getstring());

1314

///必須 設定 一下 語言環境,否則 my_log_file.writestring 不能輸出中文(是不是感覺好複雜?)沒關係,當前工程能跑起來,能夠就行。

15 setlocale(lc_all, "

chs"

);16

17//

檔案讀寫 stdiofile

18//

1.建立 cstdiofile的物件,並指定 讀寫檔案的方式。 cfile::modenotruncate,不會覆蓋之前的檔案。

19 cstdiofile my_log_file(szpaht, cfile::modewrite | cfile::modecreate |cfile::modenotruncate);

20///

這裡將2行**合併為1行了。如果分開寫,是這樣的:

21///

cstdiofile my_log_file;

22///

my_log_file.open(szpaht, cfile::modewrite | cfile::modecreate | cfile::modenotruncate);

23///

/ 24

25//

2.將讀寫指標移到檔案末尾

26my_log_file.seektoend();

27//

3.寫入乙個字串

28cstring strdata;

29 strdata.format(l"

%s", l"

早上好,");

30 strdata = strdata + l"

。\r\n";

31my_log_file.writestring(strdata);

32//

4.關閉 讀寫指標

33 my_log_file.close();

因為是在vs2013下建立的工程,預設是unicode編碼,所以就用到了 wchar 這樣的字元型別。

這裡面也有 再次介紹 如何 獲取字串。

這些都不是重點。重點看看  cstdiofile 這個類如何使用。

1.建立這個類的物件;

2.呼叫open() 方法,開啟某個檔案;/ 第1步和第2步可以合併。見**第19行。

3.如果有必要,就呼叫 seektoend(),將檔案指標移到檔案末尾

4.呼叫writestring() 寫入檔案;

5.寫完之後,關閉檔案。

1. 需要設定 語言環境(setlocale(lc_all, "chs");  

),否則 writestring() 無法將中文寫入到文字檔案中。

2.我講解的不太清楚,如果你也看得迷迷糊糊的,沒關係,有原始碼。可以直接拿來用的。前言部分 有原始碼鏈結。

CStdioFile寫檔案中出現的問題

被乙個bug糾纏了兩天,今天總算找到問題在 了 建立學生端存放考試結果資料夾 cstring strfolderpath c strfolderpath t 學生資料夾 if createdirectory strfolderpath,null cstring csrscfile strfolder...

CStdioFile類建立日誌記錄檔案

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

用CStdioFile寫程式日誌

bool bresult f.open strlogfilename,cfile modewrite cfile modecreate cfile modenotruncate cfile typetext if bresult ctime t ctime getcurrenttime static...