- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
CStdioFile的用法详细解析CStdioFile 不支持Duplicate,LockRange,和UnlockRange 这几个CFile 函数。如果在CStdioFile 中调用了这几个函数,将会出现CNoSupported 异常关于CStdioFileCStdioFile继承自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)个字符 + 0x002)如果nMax = 字符数 + 1,读取nMax个字符 + 0x003)如果nMax 字符数,读取nMax个字符 + 0x0A + 0x00CStdioFile::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类的声明保存在afx.h头文件中。CStdioFile类不支持CFile类中的Duplicate、LockRange、UnlockRange函数,如果你使用了,会得到CNotSupportedException类的错误。CStringFile类默认的是按照Text模式操作文件。CFile 类默认的是按照二进制模式操作文件。 这里大致说明一下二进制模式和Text模式的区别。二进制模式:对于一行的结尾我们必须输入”\r\n”,才能表示回车换行的效果。Text模式:”\r”回车的工作是自动完成的,我们只需要写入”\n”即可。所以我们再使用文本模式时要注意,当我们从外部读入文件时,”\r\n”会被翻译成”\n”,写入文件时,我们对于回车换行只需提供”\n”,即可,”\r\n”会被写入到文件中。m_pStr
文档评论(0)