您的位置:首页 > 编程语言 > C语言/C++

C++文件的输入和输出

2014-05-19 17:14 543 查看
fstream头文件定义了三种支持文件IO的类型:

(1)ifstream,提供读文件功能

(2)ofstream,提供写文件功能

(3)fstream,提供读写同一文件的功能

fstream除了继承自iostream的行为外,还定义了自己的俩个新操作-----open和close,以及形参为要打开文件名的构造函数。fstream和ifstream或者ofstream可以调用这些操作,而其他的IO类型则不能调用。

1.文件流对象的使用

需要读写文件时必须定义自己的对象,并将它们绑定到需要的文件上。假设ifile和ofile是存储希望读写的文件名的string对象,可编写代码如下:

ifstream infile(ifile.c_str());
ofstream.outfile(ofile.c_str());


上述代码定义并打开了一对fstream对象。infile是读入的流,outfile是写出的流。为ifstream 和ofstream对象提供文件名作为初始化式,就相当于打开了特定文件。

ifstream infile;
ofstream ofile;


上述语句将infile定义为读文件的流对象,将outfile定义为写文件对象。这两个对象都没有捆绑具体的文件。在使用时还必须对这些对象捆绑指定的文件;

infile.open("in");
outfile.open("out");


调用open函数将已存在的fstream对象与特定文件绑定。为了实现读写,需要将指定的文件打开并定位,open函数完成系统指定所需要的文件。

(文件名必须是C风格字符串,如果传递的是string对象可以调用c_str成员获取C风格字符串)。

2.检查文件是否打开成功

if(inflile){........}
if(!infile){........}


用陈语句就可以检测是否是准备好。

3.将文件流与新文件从新捆绑

fsream对象一旦打开,就保持与指定文件相关联。如果要把fstream对象与另外一个不相同文件关联,则必须先关闭现在的文件,然后打开另一个文件:

ifstream infile("in");
infile.close();
infile.open("next");
4.如果程序猿需要用一个文件流读取多个文件,则必须在读取另一个文件之前调用clear清除该流的状态
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: