IO 类

IO 对象无拷贝或赋值,因此也不能将形参或者返回类型设置为流类型,进行 IO 操作的函数通常以引用方式传递和返回流,读写一个 IO 对象会改变其状态,因此传递和返回的引用不能是 const 的

  1. ofstream out1, out2;
  2. out1 = out2; // 错误,IO 对象不能拷贝
  3. ofstream print(ofstream); // 错误,IO 对象不能设置为形参
  4. out2 = print(out2); // 错误,IO 对象不能设置为返回类型

文件输入输出

创建文件流对象时,我们可以提供文件名(可选的)。如果提供了一个文件名,则 open 会自动被调用

  1. ifstream in(file); // 构造一个 ifstream 并打开给定文件
  2. ofstream out; // 输出文件流并未关联到任何文件

如果定义了一个空文件流对象,可以随后调用 open 来将它与文件关联起来

  1. out.open(ifile+".copy");
  2. if (out) // 检查 open 是否成功

当一个 fstream 对象离开其作用域时,会被销毁,此时 close 会被自动调用。