C++ 关于EOF

2024-12-02 14:29:47
推荐回答(3个)
回答1:

根据你提问中的描述,说的是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。


以下是英文原版说明的截图:

回答2:

EOF是end of file 检测是否到达文件的结尾

回答3:

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