文件
大多数计算机都使用文件,文件的本质是存储在某种介质上的一系列字节。C++处理文件I/O的方法与标准输入输出类似,但更加复杂,例如读写模式,文件与流的关联,以及文件交替移动等。
文件I/O
类fstream
描述了文件管理的行为,包含ifstream类和ofstream类,还定义了一个fstream类用以同步文件I/O。上述类都是从iostream中的类派生过来。所以这些新类可以使用标准输入输出中的成员方法。
简单文件IO
要让程序写文件,首先创建ofstream类对象并关联文件,以cout形式输出。注意此时的该方法关联到的是文件,而不是屏幕。
ofstream fout;
fout.open("jar.txt");
ofstream fout("jar.txt"); //等效于之前两句合二为一。
fout << "hello world";
类似于iostream那样,当一个ofstream对象被创建,相应地创建一个缓冲区用于输出。如果创建了其余的ofstream对象,那么会产生对应的缓冲区。缓冲区会逐字节地接收输入,当缓冲区满会输出到目标。
以上面这种模式打开文件进行输出时,如果没有这样的文件,将创建一个新文件,若已有文件,则清空文件重新输出。
读取文件的要求于与写文件类似。
创建一个ifstream对象来管理输出流,并用该对象关联文件。之后使用cin的形式使用该对象。
ifstream fin;
fin.open("jellyjar.txt");
ifstream fis("jamjar.txt"); //这一句等效于上两句。
作用与cin相似,可以使用插入运算符。
char ch;
fin >> ch; //写入一个字符。
char buf[80];
fin.getline(char, 80