文本I/O初探
输出到文件
- 包含 < fstream > 头文件
- < fstream > 定义了一个用于处理输出的 ofstream 类
- 需要自己声明一个或多个ostream类对象
- 使用此对象打开(.open()), 关闭(.close()), 输出(<<) 文本到文件
- Example
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| #include <iostream> #include <fstream> using namespace std;
int main() {
ofstream fout; fout.open("out.txt"); fout << "hello world\n"; fout.close();
return 0; }
|
从文件中读取
- 包含 < fstream > 头文件
- 需要声明一个或多个 ifstream 类型的对象
- 使用此对象进行打开(.open()) , 关闭(.close()) 和 读取( >> .get() 或 getline()等)
- 需要正确设计读取循环,以读取到正确的内容
- 遇到EOF时, 方法 eof() 将返回true
- 遇到EOF 或 类型不匹配时, 方法 fail() 将返回true
- 最后一次读取文件时发生文件受损或硬件错误,方法 bad() 将返回true
- 没有发生任何错误时, 方法 good() 将返回 true -- 对于上一次输入而言 (一般在前面有一条输入)
- Example
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| #include <iostream> #include <fstream> #include <cassert> using namespace std;
int main() {
ifstream fin; fin.open("in.txt"); if(!fin.is_open()) { assert(0); }
int x; fin >> x; cout << x << endl;
fin.close(); return 0;
}
|