// 0802.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <istream> #include <iostream> using namespace std; istream &ReadStream( istream& myin ) { int ival; while ( myin >> ival, !myin.eof() ){ if( myin.bad() ) throw runtime_error("IO stream corrupted"); if( myin.fail()){ cerr << "bad data,try again";//如果输入非法,如字符 myin.clear(istream.failbit); myin.ignore(200,' ');//加上此行,还是会出现死循环 continue; } cout << ival << endl; } myin.clear(); return myin; } int _tmain(int argc, _TCHAR* argv[]) { ReadStream(cin); return 0; }