文件IO 文件读写
头文件已包含在iostream
打开文件
fstream fp; //实例化文件操作对象
fp.open("fileName",openmode); //以openmode方式打开fileNmae文件
ifstream和ofstram特用于输入/输出
ifstream in; //读取流对象实例化
in.open("fileName"); //打开要读取的文件,打开方式默认为ios::in
in.open("fileName",openmode); //重载,以自定义打开方式打开文件
ofstream out; //输出流对象实例化
out.open("fileName"); //打开要输出的文件,打开方式默认为ios::out
out.open("fileName",openmode); //重载,以自定义打开方式打开文件
//或者在实例化时直接打开文件
ifstream in("fileName");
ifstream in("fileName",openmode);//重载
ofstream out("fileName");
ofstream out("fileName",openmode);//重载
in和out的.open()方法在打开文件失败时in和out的值False
openMode | 描述 |
---|---|
ios::app | 追加到文件末尾 |
ios::ate | 文件打开后定位到文件末尾 |
ios::in | 读取,ifstream的默认打开方式 |
ios::out | 写入,ofstream的默认打开方式 |
ios::trunc | 如果文件已经存在,则清空文件后写入数据 |
ios::binary | 打开二进制文件 |
ios::nocreate | 如果文件不存在,不要创建文件 |
ios::noreplece | 如果文件已经存在,则不要覆盖里面的内容(返回False) |
使用多个openmode时以 | 隔开
读取和输出
C++推荐使用流(stream)方式进行IO操作
//读取,此示例逐一读取in中的字符并打印到控制台
char c;
while(in >> c){
cout<<c;
}
//写入
string s = "mokemore"
out << s;
关闭
fp.close();
in.close();
out.close();
文件位置指针
// 定位到 fp 的第 n 个字节
fp.seekg( n );
// 把文件的读指针从 fp 当前位置向后移 n 个字节
fp.seekg( n, ios::cur );
// 把文件的读指针从 fp 末尾往回移 n 个字节
fp.seekg( n, ios::end );
// 定位到 fp 的末尾
fp.seekg( 0, ios::end );
标识 | 位置信息 |
---|---|
ios::beg | 文件开始位置 |
ios::cur | 文件当前位置 |
ios::end | 文件末尾 |