首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

输入状态位值的有关问题

2012-04-02 
输入状态位值的问题C/C++ code#include iostreamusing namespace stdint main(){int ivalcinivalci

输入状态位值的问题

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;

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

热点排行