文件输入流的变量是ifstream,输出流是ofstream,它们包含在头文件<fstream>中。stream变量必须通过open函数连接文件。一旦声明了输入/输出流并连接了文件,就可以用">>"/"<<"从文件中获取信息。在open函数后,要用fail函数检查文件是否成功打开
每一个input-file stream都有成员函数eof来判断是否已读到文件结尾,当程序试图访问文件结尾后的一个字符时才会返回true(即遇到end-of-file标记时)
#include<fstream> ... ifstream in_stream; ofstream out_stream; int num1, num2; in_stream.open("input.txt"); if(in_stream.fail()) { cout << "Fail openning input file\n"; exit(1); } in_stream >> num1 >> num2; out_stream.open("out.txt"); if(out_stream.fail()) { cout << "Fail openning output file\n"; exit(1); } out_stream << "num1:" << num1; in_stream.close(); out_stream.close();
out_stream.open("out.txt", ios:app); // append to the filestream可以作为函数的参数,但必须是call-by-reference的
void copy(ifstream& in, ofstream& out);">>"符号即使一个行为,也会产生一个bool值,当stream成功获得数据时返回true,否则返回false。注意通过cin >> var;读入的变量,输入中的空格或'\n'会留在输入流中,此时如果使用get,则将获得空格或'\n'
get函数读入一个字符并存储在一个char型变量中。每一个输入流,无论是file stream还是cin都有get这个member function。对应的输出函数是put
每一个输入流都有成员函数putback,它将一个char型变量放回输入流中。这个char型变量不必是最后一个获得的字符,它可以是任意字符
char c; do { cin.get(c); cout.put(c); } while(c != ' '); cin.putback(c);
。