循环和文本输入(三):文件尾条件EOF

代码:
#include 
using namespace std;
int main(int argc, const char * argv[]) {
    char ch;
    int count = 0;
    cout << "Please use Ctrl+D : ";
    cin.get(ch);
    while (cin.fail() == false) {
        cout << ch;
        ++count;
        cin.get(ch);
    }
    cout << endl << "All char number is : " << count << endl;
    return 0;
}

说明

1.之前我们使用的哨兵字符作为检测输入结束的标志,但是哨兵字符可能是正常文本输入中的一部分,这样的话可能就会影响我们的输入,所以 我们还可以使用 检测文件尾EOF的方法来进行检测输入是否结束;
2.我们可以通过键盘来模拟EOF标志,检测到EOF之后,cin将eofbit和failbit都设置为1,fail()成员函数返回true,结束while循环。
3.cin.eof()和cin.fail()都是事后报告最近读取的结果而不是事先报告。

你可能感兴趣的:(循环和文本输入(三):文件尾条件EOF)