文件操作在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操作文件相关推荐

  1. 使用CStdioFile操作文件和filetxt.cpp报错和filecore.cpp报错

    1.打开文件: file.Open(FileName, CFile::modeCreate|CFile::modeReadWrite|CFile::modeNoTruncate); 打开文件主要需要传 ...

  2. VC 文件操作(文件查找,打开/保存,读/写,复制/删除/重命名)

    右击项目->属性->字符集:使用多字节字符集. 这样可以使用char到CString的转化. char sRead[20] = ""; CString strtest ...

  3. CStdioFile读写文件的问题

    该注意的地方: 1.读文件操作中的file和path均在CXXApp类中定义,需要在CXXView中使用,我采用的方法是获取theApp对象,从而使用其中定义的file和path变量.在CXXView ...

  4. CFile和CStdioFile的文件读写使用方法

    CFile //创建/打开文件 CFile file; file.Open(_T("test.txt"),CFile::modeCreate|CFile::modeNoTrunca ...

  5. ASP.NET 如何操作文件

    本文由chenyangasp版权所有,可以转载,复制,粘贴,并请注明出处,但不得修改! 在asp.net操作文件的所有concept都在system.io  namespace中,这个namespac ...

  6. python中年大叔学编程_中年大叔学编程-Python简单操作文件

    原标题:中年大叔学编程-Python简单操作文件 在计算机中,经常打交道的就是各种文档,用得比较多的软件就是office和记事本来操作文件,那么我们试试用Python来简单读写文件. Open函数的用 ...

  7. 操作文件方法简单总结(File,Directory,StreamReader,StreamWrite ) - Zery-zhang

    一 基本介绍 操作文档,文件夹,需要用到的类 1 Directory (静态类) :      用于创建.移动和删除等操作通过 目录 和子 目录 DirectoryInfo (非静态): 2 File ...

  8. c# 操作文件_小练习(音乐播放器)

    form排版如图一所示,详细步骤内容请见代码块:这个小练习主要目的是为了更加熟练的掌握Path类和熟练掌握操作文件的方法: using System; using System.Collections ...

  9. python操作文件和目录_Python操作文件和目录

    Python操作文件和目录 读写文件比较简单,有一点特别注意就好了 windows下Python默认打开的文件以gbk解码,而一般我们的文件是utf-8编码的,所以如果文本含有中文,就会出现异常或者乱 ...

最新文章

  1. Python:pip 和pip3的区别
  2. uniapp防止多次点击_多次赔、不分组、价格低,守卫者3号真的这么“逆天”?...
  3. 创业公司如何做数据分析(一)开篇
  4. 3.21日 爬虫小计
  5. 2016-12-17 新浪博客服务器挂掉了,所有博客页面都无法打开
  6. UE3 渲染线程的分析及优化
  7. 设置HttpClient的授权标头
  8. [导入]C#中的“装箱”与“拆箱”
  9. 基于Matlab的标记分水岭分割算法
  10. 39-java 输入输出总结
  11. spring boot高校科研管理系统毕业设计源码222055
  12. oppo计算机找不到,oppo手机和电脑连接不上怎么办只显示充电(原来这个功能没有打开)...
  13. 〖教程〗Ladon提权Win2016/Win10/MSSQL2016
  14. python 录音左右声道_Python分离立体声wav压缩文件的左右声道
  15. i512500h和r76800hs对比 i5 12500h和r7 6800hs选哪个好
  16. 6轮面试辛苦拿到阿里Android开发offer,却从22k降到15k,在逗我
  17. 捕鱼源码 免费提供和分享,仅供unity和Java初学者学习参考,希望能带来帮助
  18. 史上最全的CDN内容分发网络实战技巧
  19. EntityFramworkCore 配置种子数据(seeding data)
  20. 【CXY】JAVA基础 之 异常

热门文章

  1. 向mysql写入时间_Python向Mysql写入时间类型数据
  2. 9.什么是向上转型?什么是向下转型?
  3. 硬件大厂技术一面题目
  4. 通过枚举驱动符号链接 判断程序***有几个实例在运行
  5. linux rm 提示权限不足
  6. HDU 4544 湫湫系列故事——消灭兔子 (贪心+优先队列)
  7. 如何判断两台设备是否在同一局域网内
  8. (转)企业级NFS网络文件共享服务
  9. 在blast中E值(E value)是什么?
  10. 基于制导武器的分布式半实物仿真系统ETest研究