输入输出流的使用(一)

本文来自: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的对象。下面来张图,展示它们的具体继承关系。

#include 

using 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++文章,请访问 皂荚花。

你可能感兴趣的:(c++)