文件读写
要完成文件的读写,首先要包含fstream
头文件。
打开文件
输出模式
1 | ofstream outfile( "seq_data.txt" ); |
在输出模式下:
- 文件不存在,则文件被创建。
- 文件存在,则文件被打开,原有数据被丢弃。
追加模式
1 | // 首先需要检验文件是否可以成功打开。最简单的方法是检验class object的真伪 |
操纵符
其中,endl
是事先定义好的操纵符,由iostream library提供。
操纵符并不会将数据写到iostream,也不会从中读取数据。其作用是在iostream上执行某些操作。
读取模式
定义一个ifstream
(可供输入的file stream)对象,并将文件名传入:若文件未能打开,则对象为false;如果成功打开,则文件写入位置被设定在起始处。
1 | ifstream infile( "seq_data.txt" ); |
同时读写
为了同时读写,需要定义fstream
对象。
要以追加模式打开,需要传入ios_base::in | ios_base::app
1 | fstream iofile( "seq_data.txt", |
seekg()
在以追加模式打开档案时候,文件位置会处于末尾。此时需要通过seekg()
重新将iofile定位到文件起始处,来防止读取文件出现文件结束的问题;由于文件用追加模式开启,任何写入仍然会被添加到文件末尾。