I/O流类库(二)

来源:互联网 发布:淘宝 液态金属导热片 编辑:程序博客网 时间:2024/05/17 09:45

文件流


  • ofstream,由ostream派生而来,用于写文件
  • ifstream,有istream派生而来,用于读文件
  • fstream,由iostream派生而来,用于读写文件

文件的打开


  • 说明了流对象之后,可使用函数open()打开文件。文件的打开即是在流与文件之间建立一个连接
  • 函数原型

        void open(const  char* filename,              int  mode = ios::out,               int  prot = _SH_DENYNO);   
  • 参数
    • filename:文件的名称,可以包含(绝对和相对)路径
    • mode:文件打开模式
    • prot:保护模式

几种判断文件流是否成功的方法

#include <iostream>#include <fstream>#include<cassert>using namespace std;int main(void){    ofstream fout;    fout.open("test.txt");    if (fout.is_open())            //is_open()        cout << "succ" << endl;    else        cout << "failed" << endl;    if (fout.good())               //good()        cout << "succ" << endl;    else        cout << "failed" << endl;    if (fout)                      //fout        cout << "succ" << endl;    else        cout << "failed" << endl;    if (!fout)                     //!fout        cout << "failed" << endl;    else        cout << "succ" << endl;    assert(fout);                  //assert    fout.close();}

文件打开方式

这里写图片描述

保护模式

“拒绝”是拒绝其他进程
这里写图片描述

文件打开的几点说明


  • 文件打开也可以通过构造函数打开,例如:

     ofstream fout("out.txt",ios::out);
  • 文件的打开方法是可以为上述的一个枚举常量,也可以为多个枚举常量构成的按位或表达式
  • 使用open成员函数打开一个文件时,若由字符指针参数所指定的文件不存在,则建立该文件
  • 当打开方式中不含有ios::ate或ios::app选项时,则文件指针被自动移到文件的开始位置,即字节地址为0的位置。
  • 从效果上看ofstream指定out模式等同于指定了out和trunc模式
  • 默认情况下,fstream对象以in和out模式同时打开
  • 当文件同时以in和out打开时不会清空
  • 如果只使用out模式,而不指定in模式,则文件会清空现有数据
  • 如果同时指定了out和app,不会清空
  • 如果打开文件是指定了trunc模式,则无论是否同时指定了in模式,文件同样会被清空

0 0
原创粉丝点击