I/O Stream
Posted xero10
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了I/O Stream相关的知识,希望对你有一定的参考价值。
文件输入流的变量是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);
。
以上是关于I/O Stream的主要内容,如果未能解决你的问题,请参考以下文章