CStdioFile 写文件
前言:
介绍如何使用 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 写文件的更多相关文章
- CFile CStdioFile CArchive 文件操作之异同(详细)
两者的主要区别: 一. CFile类操作文件默认的是Binary模式,CStdioFile类操作文件默认的是Text模式. 在Binary模式下我们必须输入'\r\n',才能起到回车换行的效果, ...
- 分享一个CQRS/ES架构中基于写文件的EventStore的设计思路
最近打算用C#实现一个基于文件的EventStore. 什么是EventStore 关于什么是EventStore,如果还不清楚的朋友可以去了解下CQRS/Event Sourcing这种架构,我博客 ...
- Node.js写文件的三种方法
Node.js写文件的三种方式: 1.通过管道流写文件 采用管道传输二进制流,可以实现自动管理流,可写流不必当心可读流流的过快而崩溃,适合大小文件传输(推荐) var readStream = fs. ...
- iOS持续写文件到本地
NSString *tempSavePath = [NSString stringWithFormat:@"%@/Documents",kDocumentPath]; NSFile ...
- PHP写文件函数
/** * 写文件函数 * * @param string $filename 文件名 * @param string $text 要写入的文本字符串 * @param string $openmod ...
- node基础07:写文件
1.writeFile //server.js var http = require("http"); var writefile = require("./writef ...
- java写文件
randomAccessFile.close(); } e.printStack ...
- python 写文件,utf-8问题
写文件报数据. 同样的编码. 含中文字段的输出文件 编码为utf-8 无中文的却是asc import codecstxt = u”qwer”file=codecs.open(“test”,”w”,” ...
- Java基础之写文件——将素数写入文件中(PrimesToFile)
控制台程序,计算素数.创建文件路径.写文件. import static java.lang.Math.ceil; import static java.lang.Math.sqrt; import ...
随机推荐
- soliworks三维机柜布局(二)创建设备位置
首先声明对三维机柜布局来说,此步骤不是必须的.(创建solidworks装配体文件时,若是创建了位置就可以选择是否为每个位置创建一个装配体,没有创建位置的话只能选择创建整个工程的装配体文件) 在菜单栏 ...
- 转载c#泛型 类型参数的约束(c#编程指南)
在定义泛型类时,可以对客户端代码能够在实例化类时用于类型参数的类型种类施加限制.如果客户端代码尝试使用某个约束所不允许的类型来实例化类,则会产生编译时错误.这些限制称为约束.约束是使用 where 上 ...
- 利用SQOOP将ORACLE到HDFS
#Oracle的连接字符串,其中包含了URL,SID,和PORT URL=jdbc:oracle:thin:@132.232.19.79:10521:szdw #使用的用户名 USERNAME=szd ...
- Android studio优点及快捷键
alt+回车 提示错误信息 ctrl+shift+回车 补全代码 ctrl+alt+o 导入包 ctrl+p 查看方法的参数 ctrl+alt+t 可以弹出包围结构的代码提示 例如if android ...
- Java快捷键
Ctrl+1 快速修复(最经典的快捷键,就不用多说了)Ctrl+D: 删除当前行 Ctrl+Alt+↓ 复制当前行到下一行(复制增加)Ctrl+Alt+↑ 复制当前行到上一行(复制增加)Alt+↓ 当 ...
- flex开发小技巧集锦
关于flex开发网上有非常多的相关信息介绍,因此我们要想学习关于flex开发的知识信息技能是一件非常简单和方便的事情.而针对于flex开发小编要告诉大家的是一些flex开发小技巧.利用这些小技巧能够有 ...
- NSTimer运行机制和线程问题
A.首先要理解NSTimer运行机制和Runloop之间的关系: 1.IOS的Run Loops机制 Run Loops是线程的基础部份,任何线程,包括主结程,都包含了一个run loop对象,Coc ...
- Qt 经典出错信息之”Basic XLib functionality test failed!”(Z..z..)
此完整出错信息是在./configure阶段 Basic XLib functionality test failed! You might need to modify the include an ...
- 第一章 02 谈谈static关键词
引文一下吧 http://blog.csdn.net/hackbuteer1/article/details/7487694 一.static在C语言中的含义 1.静态变量作用范围在一个文件内,程序开 ...
- Asp.Net 之 调用远程Web_Service
一.添加web service引用 1.右键 Web 项目 → “添加服务引用”: 2.右键已有的 App_WebReferences 文件夹 → “添加服务引用”: 二.引用远程web servic ...