使用CStdioFile操作文件
文件操作在VC编程中使用非常普遍,直接使用CFile对文件进行操作比较繁琐,使用继承自CFile的CStdioFile类就要容易得多,用CStdioFile 来处理字符串,是最简单最好理解的的办法。本文整理了网上大家使用的各种CStdioFile的操作方法,归纳如下:
1.打开文件:
file.Open(FileName, CFile::modeCreate|CFile::modeReadWrite|CFile::modeNoTruncate);
打开文件主要需要传入两个参数,FileName——文件名;文件打开模式。
几种比较常见的文件打开模式:
CFile::modeCreate 以新建方式打开,如果文件不存在,新建;如果文件已存在,把该文件长度置零,即清除文件原有内容。
CFile::modeNoTruncate 以追加方式打开,如果文件存在,打开并且不将文件长度置零,如果文件不存在,会抛出异常。一般与CFile::modeCreate 一起使用,则文件不存在时,新建一个文件;存在就进行追加操作。
CFile::modeWrite 以只写模式打开
CFile::modeRead 以只读模式打开
CFile::modeReadWrite 以读写模式打开
2.读文件:
virtual LPTSTR ReadString( LPTSTR lpsz, UINT nMax ) throw( CFileException );
BOOL ReadString(CString& rString) throw( CFileException );
CStdioFile的ReadString方法可以逐行从文件中读取内容,该例将文件逐行读出,写入到str字符串里。
如果需要读出文件所有内容,可以用下面的方法:
while(file.ReadString(str))
{
filestr=filestr+str+"\r\n";
}
这里用”\r\n”来为字符串加上换行。
3.写入文件
file.WriteString(str);
这里很值得注意一下,CStdioFile类没有提供逐行写入的方法,只有自己在文件内容行的末尾增加"\n"或者"\r\n"实现换行的功能,如果文件的打开模式设置了CFile::modeNoTruncate,那么字符串将以追加的形式写入,并且是从文件指针现在所处位置写起。
比如:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
CString FileName( "test.txt" ),str( "" );
CStdioFile file;
// 创建文件“test.txt”,写入"1234567890"
file.Open(FileName, CFile::modeCreate|CFile::modeWrite);
file.WriteString( "1234567890" );
file.Close();
// 追写入“abc”
file.Open(FileName, CFile::modeCreate|CFile::modeNoTruncate|CFile::modeWrite);
file.WriteString( "abc" );
file.Close();
// 读出第一行字符串,并用消息框弹出
file.Open(FileName,CFile::modeRead);
file.ReadString(str);
file.Close();
MessageBox(str);
|
最终将弹出 abc4567890
那么如果我们其实是想写入在文件末尾,即弹出 1234567890abc,那该如何?
只要在file.WriteString("abc");前加入一句 file.SeekToEnd();。这一句的作用在于将文件指针移动到文件末尾。
4.关闭文件
同CFile类得实例一样,使用完CStdioFile记得调用Close函数将其关闭。
file.Close();
使用CStdioFile操作文件相关推荐
- 使用CStdioFile操作文件和filetxt.cpp报错和filecore.cpp报错
1.打开文件: file.Open(FileName, CFile::modeCreate|CFile::modeReadWrite|CFile::modeNoTruncate); 打开文件主要需要传 ...
- VC 文件操作(文件查找,打开/保存,读/写,复制/删除/重命名)
右击项目->属性->字符集:使用多字节字符集. 这样可以使用char到CString的转化. char sRead[20] = ""; CString strtest ...
- CStdioFile读写文件的问题
该注意的地方: 1.读文件操作中的file和path均在CXXApp类中定义,需要在CXXView中使用,我采用的方法是获取theApp对象,从而使用其中定义的file和path变量.在CXXView ...
- CFile和CStdioFile的文件读写使用方法
CFile //创建/打开文件 CFile file; file.Open(_T("test.txt"),CFile::modeCreate|CFile::modeNoTrunca ...
- ASP.NET 如何操作文件
本文由chenyangasp版权所有,可以转载,复制,粘贴,并请注明出处,但不得修改! 在asp.net操作文件的所有concept都在system.io namespace中,这个namespac ...
- python中年大叔学编程_中年大叔学编程-Python简单操作文件
原标题:中年大叔学编程-Python简单操作文件 在计算机中,经常打交道的就是各种文档,用得比较多的软件就是office和记事本来操作文件,那么我们试试用Python来简单读写文件. Open函数的用 ...
- 操作文件方法简单总结(File,Directory,StreamReader,StreamWrite ) - Zery-zhang
一 基本介绍 操作文档,文件夹,需要用到的类 1 Directory (静态类) : 用于创建.移动和删除等操作通过 目录 和子 目录 DirectoryInfo (非静态): 2 File ...
- c# 操作文件_小练习(音乐播放器)
form排版如图一所示,详细步骤内容请见代码块:这个小练习主要目的是为了更加熟练的掌握Path类和熟练掌握操作文件的方法: using System; using System.Collections ...
- python操作文件和目录_Python操作文件和目录
Python操作文件和目录 读写文件比较简单,有一点特别注意就好了 windows下Python默认打开的文件以gbk解码,而一般我们的文件是utf-8编码的,所以如果文本含有中文,就会出现异常或者乱 ...
最新文章
- Python:pip 和pip3的区别
- uniapp防止多次点击_多次赔、不分组、价格低,守卫者3号真的这么“逆天”?...
- 创业公司如何做数据分析(一)开篇
- 3.21日 爬虫小计
- 2016-12-17 新浪博客服务器挂掉了,所有博客页面都无法打开
- UE3 渲染线程的分析及优化
- 设置HttpClient的授权标头
- [导入]C#中的“装箱”与“拆箱”
- 基于Matlab的标记分水岭分割算法
- 39-java 输入输出总结
- spring boot高校科研管理系统毕业设计源码222055
- oppo计算机找不到,oppo手机和电脑连接不上怎么办只显示充电(原来这个功能没有打开)...
- 〖教程〗Ladon提权Win2016/Win10/MSSQL2016
- python 录音左右声道_Python分离立体声wav压缩文件的左右声道
- i512500h和r76800hs对比 i5 12500h和r7 6800hs选哪个好
- 6轮面试辛苦拿到阿里Android开发offer,却从22k降到15k,在逗我
- 捕鱼源码 免费提供和分享,仅供unity和Java初学者学习参考,希望能带来帮助
- 史上最全的CDN内容分发网络实战技巧
- EntityFramworkCore 配置种子数据(seeding data)
- 【CXY】JAVA基础 之 异常