您的位置:首页 > 其它

文件的输入输出

2015-06-08 20:24 239 查看
头文件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);//关联了ifile
ofstream out;
out.open(ofile);//通过open 关联了ofile


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

if(out)


文件一旦被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();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: