CFile和CStdioFile成员函数.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
CFile和CStdioFile成员函数

CFile和CStdioFile?的使用方法 (2011-09-20 18:11:42) 转载▼ 标签: cstdiofile 操作 读取 it 分类: 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”。 ? CFile //创建/打开文件 ?CFile file; ?file.Open(_T(test.txt),CFile::modeCreate|CFile::modeNoTruncate|CFile::modeReadWrite); 文件打开模式可组合使用,用“|”隔开,常用的有以下几种: ?CFile::modeCreate:以新建方式打开,如果文件不存在,新建;如果文件已存在,把该文件长度置零,即清除文件原有内容。 ?CFile::modeNoTruncate:以追加方式打开,如果文件存在,打开并且不将文件长度置零,如果文件不存在,会抛出异常。一般与CFile::modeCreate一起使用,则文件不存在时,新建一个文件;存在就进行追加操作。 ?CFile::modeReadWrite:以读写方式打开文件。 ?CFile::modeRead:只读。 ?CFile::modeWrite: 只写。 //写入数据 ?CString strValue = Hello World!; ?file.Write(strValue,strValue.GetLength()); //追加数据 ?file.SeekToEnd(); //将指针移至文件末尾进行追加 ?fil

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档