使用CStdioFile读写文件
来源:互联网 发布:身份证接口 阿里云 编辑:程序博客网 时间:2024/05/17 21:50
CStdioFile类的声明保存在afx.h头文件中。
CStdioFile类继承自CFile类,CStdioFile对象表示一个用运行时的函数fopen打开的c运行时的流式文件。流式文件是被缓冲的,而且可以以文本方式(默认)或者二进制方式打开。
CStdioFile类不支持CFile类中的Duplicate、LockRange、UnlockRange函数,如果你使用了,会得到CNotSupportedException类的错误。
CStdioFile类默认的是按照Text模式操作文件。CFile 类默认的是按照二进制模式操作文件。
这里大致说明一下二进制模式和Text模式的区别
二进制模式:对于一行的结尾我们必须输入”\r\n”,才能表示回车换行的效果。
Text模式:”\r”回车的工作是自动完成的,我们只需要写入”\n”即可。所以我们再使用文本模式时要主要,当我们从外部读入文件时,”\r\n”会被翻译成”\n”,写入文件时,我们对于回车换行只需提供”\n”,即可,”\r\n”会被写入到文件中。
构造函数:
CStdioFile();
CStdioFile(FILE *pOpenStream);
CStdioFile(LPCTSTR lpFileName, UINT nOpenFlags);throw(CFileException);
FILE *pOpenStream:指的是c运行函数fopen调用后返回的文件指针。
LPCTSTR lpFileName:指的是被打开的文件(绝对地址或相对地址)
UINT nOpenFlags:指的是CFile类中所描述的打开文件的方式。
virtual LPTSTR ReadString(LPTSTR lpsz, UINT nMax);throw(CFileException);
如果使用该函数读取文本文件,当遇到”\r\n”,停止读取,并去掉”\r”,保留”\n”,并在字符串尾部增加”\0”,nMax的长度包含有”\0”字符,
实际的分析如下:
如果nMax <= 字符数,读取(nMax-1)个字符+0x00;
如果nMax = 字符数 + 1,读取nMax个字符+0x00;
如果nMax > 字符数,读取nMax个字符+0x0A(”\n”) + 0x00;
如果文件有多行,则当文件没有读完时,返回NOT NULL,读到文件尾,返回NULL。
BOOL ReadString(CString& rString);throw(CFileException);
读取一行文本到rString中,遇到回车换行符停止读取,回车和换行符均不读到rString中,尾部也不添加”0x00”。
如果文件有多行,则当文件没有读完时,返回TRUE,读到文件尾,返回FALSE。
virtual void WriteString(LPTSTR lpsz);throw(CFileException);
将缓冲区中的数据写入到与CStdioFile对象相关联的文件中,不支持CString类型数据写入,结束的”\0”不被写入到文件中,lpsz缓冲区中的所有换行符被替换为回车换行符即”\n”转换为”\r\n”。
以上转载自:http://blog.csdn.net/dodream/archive/2007/07/17/1695049.aspx
下面是自己写的一个小例子
#include<iostream.h>
#include<afx.h>
void main()
{
CStdioFile file;
file.Open("a.txt",CStdioFile::modeReadWrite);
file.WriteString("太阳当空照");
file.WriteString("\n");
file.WriteString("小鸟对我笑");
file.WriteString("\n");
file.WriteString("早早早,你为什么背着小书包");
file.WriteString("\n");
file.Close();
CStdioFile file2;
file2.Open("a.txt",CStdioFile::modeReadWrite);
CString str;
while(file2.ReadString(str))
{//连续读取文件
cout<<str<<endl;
}
file2.Close();
}
- 使用CStdioFile读写文件
- 使用CStdioFile读写文件
- 使用CStdioFile读写文件
- 使用CStdioFile读写文件
- MFC读写文件CStdioFile
- CStdioFile读写文件的问题
- MFC读写文件CStdioFile,CFile
- 使用CStdioFile 读写UNICODE文档
- 使用CStdioFile 读写UNICODE文档
- 使用CStdioFile 读写UNICODE文档
- 使用CStdioFile操作文件
- 使用CStdioFile操作文件
- CFile和CStdioFile的文件读写使用方法
- CFile和CStdioFile的文件读写使用方法
- CFile和CStdioFile的文件读写使用方法
- CFile和CStdioFile的文件读写使用方法
- vc中unicode读写文件CStdioFile
- CFile和CStdioFile的文件读写使用方法
- linux 命令(1)
- 关于android中的通信方式
- hdoj 1242Rescue
- EDIUS 8中图片可见度该怎么进行调整
- Nginx 配置从零开始
- 使用CStdioFile读写文件
- FAQ14847]L版本全屏显示来电界面
- Notification不同api下的区别
- android ViewHolder简洁写法 实用
- hdoj 1087Super Jumping! Jumping! Jumping!《《dp》》
- HTMLTestRunner 异常输出中文乱码
- 欢迎使用CSDN-markdown编辑器
- 用MXnet入门实战深度学习之一:安装GPU版mxnet并跑一个MNIST手写数字识别
- SPA 单页Web应用