使用 getchar() 无法让 EOF 退出 do while 循环

标签 c

我有这个代码

whitespaces 是一个 int 类型,所以我可以使用 getchar 函数

do
{

 ...code...

whitespaces=getchar();}
while ( whitespaces != (EOF) || whitespaces!='\n');

但是当我按下 CTRL+Z 时它并没有退出循环(我使用的是 Windows 7)

我做错了什么?

编辑:谢谢大家...!很有帮助

最佳答案

您必须在 while 条件中使用 && 而不是 ||

关于使用 getchar() 无法让 EOF 退出 do while 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10198124/

相关文章:

c++ - 我正在使用 Xcode 进行 C++ 编程和学习。为什么我不能将许多具有 MAIN 功能的单独源文件放在一个项目中?

c - ~0 与 !0 与 C 中的 1

c - 如何在 C 中自动查找未使用的结构定义?

c# - 从 C# 客户端向 C 服务器发送消息

c - 从循环内部切换状态机的状态

c - 在VSCode中构建程序时如何指定包含路径?

c - 当我在 malloc 之前 free() 时,到底会发生什么?(我知道会出问题,但会出什么问题?)

c - 在函数中初始化 char * 类型的成员会引发警告并给出意外行为

c - 在编译时查找数组元素位置

c - 采用不同数据类型的多个元素的数组