c++文件流操作
-
文件流: 对文件进行读写操作
头文件:
类库:
ifstream 对文件输入(读文件)
ofstream 对文件输出(写文件)
fstream 对文件输入或输出
文件打开方式:
模式标志 | 描述 |
---|---|
ios::in | 读方式打开文件 |
ios:out | 写方式打开文件 |
ios::trunc | 如果此文件已经存在, 就会打开文件之前把文件长度截断为0 |
ios::app | 尾部最加方式(在尾部写入) |
ios::ate | 文件打开后, 定位到文件尾 |
ios::binary | 二进制方式(默认是文本方式) |
以上打开方式, 可以使用位操作 | 组合起来
写文本文件
#include <fstream>
#include <iostream>
#include <string>
using namespace std;
int main()
{
string name;
int age;
ofstream outfile; //也可以使用fstream, 但是fstream的默认打开方式不截断文件长度
// ofstream的默认打开方式是, 截断式写入 ios::out | ios::trunc
// fstream的默认打开方式是, 截断式写入 ios::out
// 建议指定打开方式
outfile.open("user.txt", ios::out | ios::trunc);
while (1) {
cout << "请输入姓名: [ctrl+z退出] ";
cin >> name;
if (cin.eof()) { //判断文件是否结束
break;
}
outfile << name << "\t";
cout << "请输入年龄: ";
cin >> age;
outfile << age << endl; //文本文件写入
}
// 关闭打开的文件
outfile.close();
system("pause");
return 0;
}
读文本文件
#include <fstream>
#include <iostream>
#include <string>
using namespace std;
int main()
{
string name;
int age;
ifstream infile;
infile.open("user.txt");
while (1) {
infile >> name;
if (infile.eof()) { //判断文件是否结束
break;
}
cout << name << "\t";
infile >> age;
cout << age << endl;
}
// 关闭打开的文件
infile.close();
system("pause");
return 0;
}