• CStdioFile


    CStdioFile类的声明保存再afx.h头文件中。
    CStdioFile类继承自CFile类,CStdioFile对象表示一个用运行时的函数fopen打开的c运行时的流式文件。流式文件是被缓冲的,而且可以以文本方式(默认)或者二进制方式打开。
    CStdioFile类不支持CFile类中的DuplicateLockRangeUnlockRange函数,如果你使用了,会得到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”
     
  • 相关阅读:
    数据结构与算法----双向链表
    数据结构与算法----数学应用之一元多项式
    数据结构----线性表顺序和链式结构的使用(c)
    Android--Otto事件总线 -- 组件之间通讯框架使用 --模式解析
    递归 —— 二分查找法 —— 归并排序
    自己做悬浮拖拽按钮依赖
    RePlugin 插件化-内置加载
    Android图片处理--缩放
    数据结构与算法---常用三大排序算法
    Android图片处理--全景查看效果
  • 原文地址:https://www.cnblogs.com/riskyer/p/3223542.html
Copyright © 2020-2023  润新知