C++ primer 一书中关于流处理的一个程序,哪位高手帮忙看看

jzhfe 发布于 2011/10/17 22:24
阅读 284
收藏 0
#include <iostream>
#include <stdexcept>
using namespace std;

int main()
{
	int ival;

    while (!cin.eof()) {
    cin>>ival;
    if (cin.bad())         // input stream is corrupted; bail out
            throw runtime_error("IO stream corrupted");
    if (cin.fail()) {                        // bad input
            cerr<< "bad data, try again" <<endl;        // warn the user
            cin.clear(istream::failbit);         // reset the stream
            continue;                            // get next input
        }
        // ok to process ival
    }
	return 0;
}

当输入非数字时,一直输出“ bad data, try again” 如何将流置为有效。

加载中
0
周翼翼
周翼翼

line 15====>

cin.clear(); 

cin.get();

周翼翼
周翼翼
int get(); Extracts a character from the stream and returns its value (casted to an integer). cin>>的时候,如果类型不对,不会把数据从流中取出.get()把它强制取出来,得到的是你输入字符的ascii码,转为整数.你可以cout<<cin.get();看看就知道.
j
jzhfe
能否解释下 此处cin.get()的作用。
0
优游幻世
优游幻世
cin.clear();   将里面的去掉试试吧。。     
0
j
jzhfe
周翼翼 回答于 2011-10-18 00:40 (9小时前)

-----------------------------------------------------------------

多谢了!!

返回顶部
顶部