【发布时间】:2021-09-15 12:39:46
【问题描述】:
根据我的经验,我不应该将返回值 int 从 std::getchar、std::cin.get()、std::cin.peek() 分配给 char,因为它非常危险且容易出错。
- 所以我可以使用:
std::cin.get(c);,但不能使用c = std::cin.get()。
现在如果我发出这个:
char ch;
std::cin.get(ch); // Ctrl+D
而用户输入文件末尾EOF (-1) 函数std::cin.get(c) 怎么设置为ch?或ch 的值为\0?谢谢。
【问题讨论】:
-
任何来自 cin 的非空返回值都是有效的。所以,是的,NULL 返回是 EOF。
-
@moi 这是不正确的。
EOF在 EOF 上返回,EOF返回的值不等于任何 char_type 类型的有效值。 -
EOF 给出负返回值,错误返回 NULL 值,任何正返回值都意味着 cin 成功。 @NathanOliver 是这样吗?
-
@moi 不。任何错误都会返回
EOF。