前言:

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

完整工程代码,点我下载(请注意工程里面需要包含的 <locale.h>头文件 )

示例:

  /// My Add
// 获取当前路径名
WCHAR szPaht[MAX_PATH] = { };
GetModuleFileName(NULL, szPaht, sizeof(szPaht));
PathRemoveFileSpec(szPaht); // 设置你的文件名
CString strFileName("Demo.txt"); // 将文件名附加在 当前路径 里面
wcscat_s(szPaht, L"\\"); ///知道为啥是L 开头吗,因为vs2013工程默认是unicode环境,unicode字符串需要 L 开头的宏
wcscat_s(szPaht, strFileName.GetString()); /// 必须 设置 一下 语言环境,否则 my_log_file.WriteString 不能输出中文(是不是感觉好复杂?)没关系,当前工程能跑起来,能够就行。
setlocale(LC_ALL, "chs"); // 文件读写 StdioFile
// 1.创建 CStdioFile的对象,并指定 读写文件的方式。 CFile::modeNoTruncate,不会覆盖之前的文件。
CStdioFile my_log_file(szPaht, CFile::modeWrite | CFile::modeCreate | CFile::modeNoTruncate);
/// 这里将2行代码合并为1行了。如果分开写,是这样的:
/// CStdioFile my_log_file;
/// my_log_file.Open(szPaht, CFile::modeWrite | CFile::modeCreate | CFile::modeNoTruncate);
//// // 2.将读写指针移到文件末尾
my_log_file.SeekToEnd();
// 3.写入一个字符串
CString strData;
strData.Format(L"%s", L"早上好,");
strData = strData + L"乌龟大师。\r\n";
my_log_file.WriteString(strData);
// 4.关闭 读写指针
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

CStdioFile 写文件的更多相关文章

  1. CFile CStdioFile CArchive 文件操作之异同(详细)

    两者的主要区别: 一. CFile类操作文件默认的是Binary模式,CStdioFile类操作文件默认的是Text模式.    在Binary模式下我们必须输入'\r\n',才能起到回车换行的效果, ...

  2. 分享一个CQRS/ES架构中基于写文件的EventStore的设计思路

    最近打算用C#实现一个基于文件的EventStore. 什么是EventStore 关于什么是EventStore,如果还不清楚的朋友可以去了解下CQRS/Event Sourcing这种架构,我博客 ...

  3. Node.js写文件的三种方法

    Node.js写文件的三种方式: 1.通过管道流写文件 采用管道传输二进制流,可以实现自动管理流,可写流不必当心可读流流的过快而崩溃,适合大小文件传输(推荐) var readStream = fs. ...

  4. iOS持续写文件到本地

    NSString *tempSavePath = [NSString stringWithFormat:@"%@/Documents",kDocumentPath]; NSFile ...

  5. PHP写文件函数

    /** * 写文件函数 * * @param string $filename 文件名 * @param string $text 要写入的文本字符串 * @param string $openmod ...

  6. node基础07:写文件

    1.writeFile //server.js var http = require("http"); var writefile = require("./writef ...

  7. java写文件

                                  randomAccessFile.close();              }                  e.printStack ...

  8. python 写文件,utf-8问题

    写文件报数据. 同样的编码. 含中文字段的输出文件 编码为utf-8 无中文的却是asc import codecstxt = u”qwer”file=codecs.open(“test”,”w”,” ...

  9. Java基础之写文件——将素数写入文件中(PrimesToFile)

    控制台程序,计算素数.创建文件路径.写文件. import static java.lang.Math.ceil; import static java.lang.Math.sqrt; import ...

随机推荐

  1. Sql Server 带参数的存储过程执行方法

    Sql Server 带参数的存储过程执行方法 Visual C# 动态操作 SQL Server 数据库实例教程(4):带参数的存储过程执行方法 上一篇文章介绍了带参数的SQL语句执行方法和不带参数 ...

  2. Sql Server 存储过程使用技巧

    1.创建带Try...Catch的存储过程模板 Copy下面的代码,然后新建查询,就可以写sql语句,执行完后,一个你自己的存储过程就建立好了! USE [DB]--设定对应的数据库 GO SET A ...

  3. 放弃移动版Flash而非AIR

    之前看到标题为"Adobe放弃移动版flash"的新闻,我很震惊,为何Adobe会放弃这么一个大市场呢? 这样无疑打击原来在flash的开发上的应用,我想很多人和我想的一样,fla ...

  4. ThinkPHP 获取配置文件中的值

    C('SPECIAL_USER'):获取配置文件中的值 存入数组

  5. 关于cocos2dx手游lua文件加密的解决方式

    非常多使用cocos2dx+lua做游戏的同学.都会想到一个问题,我的游戏一旦公布,如何才干保证的我脚本代码不被破解.不泄露代码.尽管这和开源.共享的原则不合.可是代码也是coder的劳动成果,理应得 ...

  6. 文件I/O(不带缓冲)之close函数

    可调用close函数关闭一个打开的文件: #include <unistd.h> int close( int filedes ); 返回值:若成功则返回0,若出错则返回-1. 关闭一个文 ...

  7. android开发之路05

    一.获取res资源文件下values中内容的方式: 1.string.xml文件-------------------------------> 取值方式:getResource().getSt ...

  8. Tomcat启动报错 Failed to start component [StandardServer[8005]]解决

    SEVERE: The required Server component failed to start so Tomcat is unable to start. org.apache.catal ...

  9. visibility,display区别

    visibility:hidden,display:none 前者隐藏位置还在,后者隐藏位置消失

  10. JS常用正则(转)

    作者:zxin出处:http://zxin.cnblogs.com/ 一.校验数字的表达式 1 数字:^[0-9]*$ 2 n位的数字:^\d{n}$ 3 至少n位的数字:^\d{n,}$ 4 m-n ...