您的位置:首页 > 其它

I/O Stream

2016-02-25 11:47 204 查看
文件输入流的变量是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();


当用open打开存在文件时,文件内容会被清空。如果不想清空原文件内容而在后面继续添加新内容,使用

out_stream.open("out.txt", ios:app);	// append to the file
stream可以作为函数的参数,但必须是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);


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: