读书人

输入状态位值的有关问题

发布时间: 2012-04-02 19:58:59 作者: rapoo

输入状态位值的问题

C/C++ code
#include <iostream>using namespace std;int main(){    int ival;    cin>>ival;    cin.clear(istream::goodbit);    cout<<istream::failbit<<endl;    cout<<istream::eofbit<<endl;    cout<<istream::badbit<<endl;    cout<<istream::goodbit<<endl;    return 0;}

不管输入给ival的数字还是字母,怎么输出都是 2 1 4 0,我看别个说failbit应该是4,badbit是2,eofbit是1,而这里failbit是2,eofbit是1,badbit是4,怎么差别这么大呢?没错的时候,failbit等三个不是应该都为0吗?怎么会是1值?

[解决办法]
istream是个类,failbit等是里边的枚举....

cin是istream类对象...
[解决办法]
cout<<(cin.rdstate()&istream::failbit)<<endl;

你应该是读取状态值之后和这些值做与运算

读书人网 >C++

热点推荐