gpt4 book ai didi

c++ - 不能 cin.ignore 直到 EOF?

转载 作者:行者123 更新时间:2023-11-30 01:49:42 25 4
gpt4 key购买 nike

我想忽略 cin 中的所有字符以刷新此答案中的 cin:How to get rid of bad input one word at a time instead of one line at a time?

但是我发现如果我这样写,程序似乎会挂起等待输入:

cin.ignore(std::numeric_limits<std::streamsize>::max());

如果我使用 '\n' 分隔符,它会正确刷新 cin:

cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');

我的问题是,为什么我不能忽略直到 EOF?为什么我必须提供分隔符?

最佳答案

ignore 函数名称有点误导。它实际执行的操作是读取丢弃 输入,直到找到终止符。这是阻塞读取。

在您的情况下,无论您使用 cin 的输入流(默认情况下是 stdin)都不会提供文件结束条件,所以 永远忽略的读/丢弃循环 block 。

关于c++ - 不能 cin.ignore 直到 EOF?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28633195/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com