CStdioFile 寫文件


前言:

介紹如何使用 CStdioFile 類去寫文件。

完整工程代碼,點我下載(請注意工程里面需要包含的 <locale.h>頭文件 )

示例:

 1  /// My Add 
 2     // 獲取當前路徑名
 3     WCHAR szPaht[MAX_PATH] = { 0 };
 4     GetModuleFileName(NULL, szPaht, sizeof(szPaht));
 5     PathRemoveFileSpec(szPaht);
 6     
 7     // 設置你的文件名
 8     CString strFileName("Demo.txt");
 9 
10     // 將文件名附加在 當前路徑 里面
11     wcscat_s(szPaht, L"\\");  ///知道為啥是L 開頭嗎,因為vs2013工程默認是unicode環境,unicode字符串需要 L  開頭的宏
12     wcscat_s(szPaht, strFileName.GetString());
13 
14     /// 必須 設置 一下 語言環境,否則 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.將讀寫指針移到文件末尾
26     my_log_file.SeekToEnd();
27     // 3.寫入一個字符串
28     CString  strData;
29     strData.Format(L"%s", L"早上好,");
30     strData = strData + L"烏龜大師。\r\n";
31     my_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.我講解的不太清楚,如果你也看得迷迷糊糊的,沒關系,有源碼。可以直接拿來用的。前言部分 有源碼鏈接。

 

參考鏈接:

http://blog.csdn.net/ljz888666555/article/details/5511247

http://blog.csdn.net/jearmy/article/details/39559895

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM