关于CStdioFile
CStdioFile继承自CFile,一个CStdioFile 对象代表一个用运行时函数fopen 打开的C 运行时流式文件。流式文件是被缓冲的,而且可以以文本方式(缺省)或二进制方式打开。文本方式提供对硬回车—换行符对的特殊处理。当你将一个换行符(0x0A)写入一个文本方式的CStdioFile 对象时,字节对(0x0D,0x0A)被发送给该文件。当你读一个文件时,字节对(0x0D,0x0A)被翻译为一个字节(0x0A)。
CStdioFile 不支持Duplicate,LockRange,和UnlockRange 这几个CFile 函数。如果在CStdioFile 中调用了这几个函数,将会出现CNoSupported 异常。
CStdioFile::ReadString(LPTSTR lpsz, UINT nMax);
读取一行文本到缓冲区,遇到“0x0D,0x0A”时停止读取,并且去掉硬回车“0x0D”,保留换行符“0x0A”,在字符串末尾添加“/0”(0x00)。nMax个字符里包含0x00这个字符。分析如下:
1)如果nMax <= 字符数,读取(nMax-1)个字符 + 0x00
2)如果nMax = 字符数 + 1,读取nMax个字符 + 0x00
3)如果nMax > 字符数,读取nMax个字符 + 0x0A + 0x00
CStdioFile::ReadString(CString &rString);(重载)
读取一行文本到rString,遇到回车换行符停止读取。回车和换行符不读到rString,而且末尾也没有添加“/0”。
CStdioFile::WriteString( LPCTSTR lpsz );(不支持CString直接写入)
将一个缓冲区中的数据写入与CStdioFile 对象关联的文件中。结束的空字符(“/0”)不被写入该文件。lpsz 中的所有换行符都被以一个硬回车换行符对写入该文件,即“/n”被转化成“/r/n”写入到文件里。
CFile的派生类CStdioFile提供了对文件进行流式的操作功能。其中函数void CStdioFile::WriteString( LPCTSTR lpsz )写入一个字符串,需要给字符串lpsz的末尾加上换行标志”/r/n”;函数bool CStdioFile::ReadString(CString &rString )从文件中读取一行,如果文件未读完返回true,否则返回false。
比如:写入文件的例子
//创建文件
CStdioFile file;
file.Open("ts.txt",CFile::modeCreate|CFile::modeWrite);
//写入文件
CString str;
str.Format("%s/r/n","hello!I am talkingmute!");
file.Seek(0,CFile::end);
file.WriteString( str );
//关闭文件
file.Close();
比如:读文件的例子
CString strText = “”;
CString szLine = “”;
//打开文件
CStdioFile file;
file.Open("ts.txt",CFile::modeRead);
//逐行读取字符串
while( file.ReadString( szLine ) )
{
strText += szLine;
}
MessageBox(strText);
//关闭文件
file.Close();
关于CStdioFile相关推荐
- CFile和CStdioFile的区别以及‘\r’、‘\r\n’
转自:http://blog.csdn.net/davidhsing/archive/2007/08/26/1759494.aspx MSDN: Difference between text mod ...
- CFile、CStdioFile、FILE和其他文件操作(转)
CFile //创建/打开文件 CFile file; file.Open(_T("test.txt"),CFile::modeCreate|CFile::modeNoTrunca ...
- CStdioFile读写文件的问题
该注意的地方: 1.读文件操作中的file和path均在CXXApp类中定义,需要在CXXView中使用,我采用的方法是获取theApp对象,从而使用其中定义的file和path变量.在CXXView ...
- CStdioFile写文件中出现的问题
被一个bug纠缠了两天,今天总算找到问题在哪里了: //创建学生端存放考试结果文件夹 CString strFolderPath = "C://"; strFolderPath ...
- CFile和CStdioFile的文件读写使用方法
CFile //创建/打开文件 CFile file; file.Open(_T("test.txt"),CFile::modeCreate|CFile::modeNoTrunca ...
- MFC - CStdioFile 读取txt文件UNICODE 中文异常
MFC - CStdioFile 读取txt文件UNICODE 中文异常 参考文章: (1)MFC - CStdioFile 读取txt文件UNICODE 中文异常 (2)https://www.cn ...
- CFile、CStdioFile、FILE和其他文件操作
CFile //创建/打开文件 CFile file; file.Open(_T("test.txt"),CFile::modeCreate|CFile::modeNoTrunca ...
- 使用CStdioFile操作文件
文件操作在VC编程中使用非常普遍,直接使用CFile对文件进行操作比较繁琐,使用继承自CFile的CStdioFile类就要容易得多,用CStdioFile 来处理字符串,是最简单最好理解的的办法.本 ...
- CStdioFile类学习
CStdioFile 类学习笔记 2007-7-17 CStdioFile 类的声明保存再 afx.h 头文件中. CStdioFile 类继承自 CFile 类, CStdioFile 对象表示一个 ...
- CStdioFile类
参数内容: 第一个参数为路径+文件名,最后一个为错误出现的结构. 现在解释下第二个参数 CFile::modeCreate Directs the constructor to create a ...
最新文章
- Xilinx Axi Dma Userspace模式下 寄存器 +MMAP 测试程序
- Cassandra - Insert after Delete fails silently
- win7右键点击文件夹进入命令窗口方法
- 计算2的N次方(信息学奥赛一本通-T1170)
- python-计算机二级考试-报考笔记
- webpack快速入门教程
- java批量查询导致堆内存不足,带有嵌套聚合的Elasticsearch查询导致内存不足
- 使用JRebel进行Java Web项目的热部署
- Use Jet OLE DB Provider 4.0 to Connect to ISAM Databases (连接Excel, Text等数据库)
- Lidar Studio点云处理与分析软件V1.1
- 关于MyDockFinder
- 手工焊锡通用工艺规程
- matlab 音频fftshift,matlab使用杂谈5-fftshift函数的使用
- 你努力工作会让老板感动吗?
- MySQL压缩包下载及解压安装
- PMP计算题笔记(净现值、投资回收期、PERT、总价加激励、成本加激励)
- 让男生成熟的十部电影zt
- 造成BGA焊接不良问题有哪些?
- 鼠标滚动调整图片大小(css3 zoom 放大缩小)
- 如何设计动态股权分配方案