输入状态位值的问题
- 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;
你应该是读取状态值之后和这些值做与运算