本文来自:http://www.zaojiahua.com/inputoutput-stream.html皂荚花。
c++中定义的标准输入输出流是istream和ostream,他们是iostream类的父类,而cin是istream的对象,cout是ostream的对象。头文件fstream(对文件操作的流)包含了ifstream和ofstream,头文件sstream(对字符串操作的流)包含了istringstream和ostringstream,这些类都是继承自istream和ostream的。所以iostream具有的一些操作它们都有。在函数参数传递的时候,根据父类的引用可以指向子类对象的原则,所有要求传入iostream类的对象的函数都可以传入fstream和sstream的对象。下面来张图,展示它们的具体继承关系。

#includeusing namespace std; istream & get(istream & in); int main() { get(cin); double d; cin>>d; cout< >i返回错误的情况是 系统级的故障,读到了非法字符或者是遇到了文件尾,我们也可以使用while(in>>i) //当遇到了文件尾的时候eof()函数返回真,在win32下我们可以使用ctrl+z来模拟文件尾 while(in>>i,!in.eof()) { //bad()函数如果返回的是真,代表的是遇到了系统级的故障 if(in.bad()) { throw runtime_error("IO stream corrupted"); } //一般我们输入非法字符的时候fail()函数返回的就是真值 if(in.fail()) { //cerr代表的是标准错误 cerr<<"bad data,try again"<
本文来自:http://www.zaojiahua.com/inputoutput-stream.html皂荚花。更多的c/c++文章,请访问皂荚花。