CStdioFile 类去写文件

介绍如何使用 CStdioFile 类去写文件。

示例:

复制代码
 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

 

猜你喜欢

转载自blog.csdn.net/wyq429703159/article/details/80225965