std::ios::clear 的参数不能组合么?
本帖最后由 shendaowu 于 2013-08-14 13:46:19 编辑
#include <iostream>后面的那几个输出全都是零。
#include <cstdio>
using namespace std;
int main()
{
cin.clear( ios_base::goodbit );
printf( "%X\n", cin.rdstate() );
cin.clear( ios_base::eofbit );
printf( "%X\n", cin.rdstate() );
cin.clear( ios_base::failbit );
printf( "%X\n", cin.rdstate() );
cin.clear( ios_base::badbit );
printf( "%X\n", cin.rdstate() );
cout << endl;
cin.clear( ios_base::eofbit & ios_base::failbit );
printf( "%X\n", cin.rdstate() );
cin.clear( ios_base::eofbit & ios_base::badbit );
printf( "%X\n", cin.rdstate() );
cin.clear( ios_base::failbit & ios_base::badbit );
printf( "%X\n", cin.rdstate() );
return 0;
}
相对应有个setstate()函数,只设置相关的标记为1,其余的不变。
大概就是取名clear的缘故。
大多数就用默认的clear,其他的方式很少用。