首页 > 代码库 > 浅谈C++的文件操作(上)

浅谈C++的文件操作(上)

  今天正在做C++的课程设计,碰到文件操作问题,自己琢磨了半天,现在总结一下,有需要的可以参考一下(特别是新手)

C++ 通过以下几个类支持文件的输入输出:

ofstream: 写操作(输出)的文件类
ifstream: 读操作(输入)的文件类
fstream: 可同时读写操作的文件类 

1.打开文件

对这些类的一个对象所做的第一个操作通常就是将它和一个真正的文件联系起来,也就是说打开一个文件。被打开的文件在程序中由一个流对象(stream object)来表示 (这些类的一个实例) ,而对这个流对象所做的任何输入输出操作实际就是对该文件所做的操作。

 要通过一个流对象打开一个文件,我们使用它的成员函数open():文件流对象.open (文件名,打开方式);

打开方式是以下标志符的一个组合:

ios::in 为输入(读)而打开文件 
ios::out 为输出(写)而打开文件 
ios::ate 打开现存的文件,将文件指针指向文件尾 
ios::app 所有输出附加在文件末尾 
ios::trunc 如果文件已存在则先删除该文件 
ios::binary 二进制方式

ios::nocreate 若文件不存在,则打开失败

ios::noreplace 若文件存在,则打开失败

些标识符可以被组合使用,中间以”或”操作符(|)间隔。例如,如果我们想要以二进制方式打开文件"example.bin" 来写入一些数据,我们可以通过以下方式调用成员函数open()来实现:ofstream file;

file.open ("example.bin", ios::out | ios::app | ios::binary);

ofstream, ifstream 和 fstream所有这些类的成员函数open 都包含了一个默认打开文件的方式,这三个类的默认方式各不相同: 类 参数的默认方式

ofstream ios::out | ios::trunc

ifstream ios::in

fstream ios::in | ios::out

注:只有当函数被调用时没有声明方式参数的情况下,默认值才会被采用。如果函数被调用时声明了任何参数,默认值将被完全改写,而不会与调用参数组合。

了解了文件的使用方式后,可以通过以下步骤打开文件:

1.定义一个流对象,如:ofstream out;

out 是流对象,是个输出流对象。

2.使用open函数打开文件,如out.open("test.dat",ios::out);

3.检测:if(!out){

cout<<"cannot open file!\n";

}

 2.文件关闭:用out.close();即可。

浅谈C++的文件操作(上)