根据你提问中的描述,说的是C++的ios流操作函数吧。
ios类定义了这四个常量badbit, eofbit, failbit, goodbit中的两种,这四个标志常量就是取对应标志位的掩码,也即输入的四种异常情况!
以上四个常量对应的取值为:
ios::badbit 001 输入(输出)流出现致命错误,不可挽回
ios::eofbit 010 已经到达文件尾
ios::failbit 100 输入(输出)流出现非致命错误,可挽回
ios::goodbit 000 流状态完全正常, 各异常标志位都为0
fail函数的检测,如果failbit、badbit中任意一种或两种被设置,则fail()返回true,否则返回false;
eof函数,只检测eofbit,如果标记存在则返回true,否则false。
以下是英文原版说明的截图:
EOF是end of file 检测是否到达文件的结尾
Ctrl+Z 是 EOF.
部分修改一下:
char ch;
while( 1)
{
ch = cin.get();
if (ch == EOF) break;
cin.unget();
a[i] = cin.get() -'0';
i++;
}
改好了。
运行,拍入:
1111
Ctrl+Z 回车
得:
k=15