MFC -- CStdioFile类
来源:互联网 发布:鹏华兴鑫宝货币 知乎 编辑:程序博客网 时间:2024/05/19 23:00
CStdioFile类的声明保存再afx.h头文件中。
CStdioFile类继承自CFile类,CStdioFile对象表示一个用运行时的函数fopen打开的c运行时的流式文件。流式文件是被缓冲的,而且可以以文本方式(默认)或者二进制方式打开。
CStdioFile类不支持CFile类中的Duplicate、LockRange、UnlockRange函数,如果你使用了,会得到CNotSupportedException类的错误。
CStringFile类默认的是按照Text模式操作文件。CFile 类默认的是按照二进制模式操作文件。
这里大致说明一下二进制模式和Text模式的区别。
二进制模式:对于一行的结尾我们必须输入”/r/n”,才能表示回车换行的效果。
Text模式:”/r”回车的工作是自动完成的,我们只需要写入”/n”即可。所以我们再使用文本模式时要主要,当我们从外部读入文件时,”/r/n”会被翻译成”/n”,写入文件时,我们对于回车换行只需提供”/n”,即可,”/r/n”会被写入到文件中。
m_pStream成员变量:
打开文件的指针。
构造函数:
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”。
- MFC -- CStdioFile类
- MFC点点滴滴——CStdioFile,CFile类
- MFC CStdioFile简单用法
- MFC CStdioFile简单用法
- MFC读写文件CStdioFile
- MFC--CStdioFile类和CFile类的区别
- mfc用这个类CStdioFile有什么特殊要求吗?
- CStdioFile,CFile类,文本文件处理(MFC学习园地)
- MFC文件类CStdioFile读写中文文件的注意事项
- MFC文件类CStdioFile读写中文文件的注意事项
- CStdioFile类
- CStdioFile类
- CStdioFile类
- CStdioFile类
- CStdioFile类
- MFC文件操作之CStdioFile
- MFC读写文件CStdioFile,CFile
- MFC C++ CStdioFile类写入文件 在文件末尾追加数据
- 关于Web GUI界面
- 腿抽筋了
- 并发危险:解决多线程代码中的 11 个常见的问题(C#示例) from MSDN
- shell判断文件是否存在
- Android imageView图片按比例缩放
- MFC -- CStdioFile类
- emoji表情拾取器
- 初次接触nginx服务器
- Delphi (c++builder) 调用C#编写的WebService 参数为Null解决方法
- 收藏个博客 爪哇米工作室陈跃峰的移动开发博客
- 如何运行android sdk sample中的单元测试
- CruiseControl.NET : Email Publisher cc.net mail 配置(建议初学者必看)
- SHELL脚本,学习笔记
- CParentDialog派生CChildDialog