输入输出主要是通过流的形式:
在c++中,输入常用的类:istream, 其与文件相关的子类为ifstream
输出常用的类:ostream , ofstream
iostream同时继承了istream和ostream,其子类有fstream;
在操作文件时,一般要包含头文件<fstream>
操作文件的一般步骤:
1> 创建流对象
输出流(写入流):ofstream fout;
输入流(读取流):ifstream fin;
2> 打开文件 open()
open() 函数主要有3个参数:
(1)文件名
(2)文件打开方式
(3)文件的属性,一般不写;很少用到;
fout.open( “a.txt” , ios::out |ios::ate );
其中文件名: 注意路径,有相对路径和绝对路径之分;
文件打开方式:
打开文件的方式在iOS类(所以流式I/O的基类)中定义,有如下几种方式:
ios::in | 为输入(读)而打开文件 |
ios::out | 为输出(写)而打开文件 |
ios::ate | 初始位置:文件尾 |
ios::app | 所有输出附加在文件末尾 |
ios::trunc | 如果文件已存在则先删除该文件 |
ios::binary | 二进制方式 |
这些方式是能够进行组合使用的,以“或”运算(“|”)的方式;
3> 读写文件
4>关闭文件
一般调用close(),防止意外的错误;
对二进制文件的读写主要用istream类的成员函数read和write来实现。这两个成员函数的原型为
istream& read(char *buffer,int len);
ostream& write(const char * buffer,int len);