文件的输入输出

来源:互联网 发布:java 是开源的吗 编辑:程序博客网 时间:2024/06/06 04:55

头文件fstream给出了三个类型来支出文件IO:

  • ifstream从一个给定文件读取数据
  • ofstream向一个给定的文件写入数据
  • fstream可以读写给定文件

    1.使用文件流对象

当我们想读写一命名文件时,可以先定义一个文件流对象,并将文件与对象关联起来。然后用文件流类的open函数完成一些操作。

ifstream in(iflile);//定义一个流并且与文件ifile关联ofstream out;//未关联任何文件的输出流

C++11中文件名可以为string类型也可以是C风格的字符数组。

用fstream 代替iostream&
在使用基类型对象的地方可以用其继承类的对象来代替,所以接受一个iostream类型引用(或指针)参数的函数,可以用一个对应的fstream类型来调用。

成员函数open和close
定义了流对象后可以通过open函数来关联文件

ifstream in(iflie);//关联了ifileofstream out;out.open(ofile);//通过open 关联了ofile

由于调用open可能失败所以要对其进行检查

ifout

文件一旦被open打开,其他任何试图使用文件流的操作都将失败,所以在使用完后需要通过close将其关闭。

out.close();

当一个fstream流被销毁时,close函数会被自动调用。

2.文件模式
每个流都有一个关联的文件模式,用来指出如何使用文件:

  • in 以读的方式打开
  • out 以写的方式打开
  • app每次写操作前都先定位文件的末尾
  • ate打开文件后立即定义到文件末尾
  • trunc截断文件
  • binary以二进制方式进行io

默认情况下我们打开一个文件,文件内容都将会被丢弃。若为了保存文件原有内容需要显示的指定app模式。

ofstream out("file1");//默认截断ofstream out1("file2",ofstream::out);ofstream out3("file3",ofstream::out|ofstream::trunc);//显式截断//为了保存文件,显式指定app模式ofstream app("file",ofstream::app);

对于一个给定的流,每当用open打开流的时候都可以改变其文件模式。

ofstream out;out.open("file");//隐式设置为输出和截断out.close();out.open("file",ofstream::app);//模式为输出和追加out.close();
0 0
原创粉丝点击