主要介绍下fstream(filestream—文件流),ostream,istream。涉及到文件的一些流操作要包含头文件fstream
#include <stream>
ofstream //文件写操作,内存写入存储
istream //文件读操作,存储读<pre name="code" class="cpp">ofstream out;
out.open("hello.txt",ios::in|ios::out|ios::binary)
到内存fstream //可对文件进行读写操作 1.打开文件
在fstream类中,成员函数open()实现打开文件的操作,从而将数据流和文件进行关联
打开文件的代码。open()函数的参数有文件名,打开文件的方式。文件名可以使用相对路径或绝对路径表明文件所在的位置。
ofstream out;
out.open("Hello.txt", ios::in|ios::out|ios::binary)
2.文本文件的读写操作
void Salary::read_data( )
{
int i;
ifstream infile("salary.txt",ios::in); //以输入的方式打开文件
if(!infile) //测试是否成功打开
{
cerr<<"open error!"<<endl;
exit(1);
}
i=0;
while(infile>>salarys[i])
i++;
number=i;
infile.close();
}
<span style="background-color: rgb(255, 255, 255);">
</span>
<pre name="code" class="cpp">void Salary::write_data( )
{
int i;
ofstream outfile("salary_ordered.txt",ios::out); //以输入的方式打开文件
if(!outfile) //测试是否成功打开
{
cerr<<"open error!"<<endl;
exit(1);
}
for(i=0; i<number; ++i)
{
outfile<<salarys[i]<<endl;
}
outfile.close();
}
文件流类与文件流对象
文件流是以外存文件为输入输出对象的数据流。输出文件流是从内存流向外存文件的数据,输入文件流是从外存文件流向内存的数据。每一个文件流都有一个内存缓冲区与之对应。
请区分文件流与文件的概念。文件流本身不是文件,而只是以文件为输入输出对象的流。若要对磁盘文件输入输出,就必须通过文件流来实现。要以磁盘文件为对象进行输入输出,必须定义一个文件流类的对象,通过文件流将数据从内存输出到磁盘文件,或者通过文件流对象从磁盘文件将数据输入到内存。例如ofstream out;就是定义了一个输出流对象