运行《The C Programming Language》中C程序无法退出循环,求原因与解决方法
循环无法退出的原因及解决办法
你用的是K&R《C程序设计语言》里的经典输入处理程序,核心逻辑应该是用while (getchar() != EOF)来持续读取输入。没法退出循环的关键是你没触发正确的EOF(文件结束符):
- 如果你用的是Windows系统:得在新行开头按
Ctrl + Z,再敲回车,才能触发EOF信号让循环终止。 - 如果你用的是Unix/Linux/macOS系统:直接按
Ctrl + D就能触发EOF。
额外提一句:要是你先输入了内容再按EOF快捷键,可能得多按一次——因为输入缓冲区里还剩着没处理的字符,得等这些字符都被读取完,再触发EOF才会生效。
本质上,getchar() 是从标准输入流读字符,只有读到EOF信号才会结束循环,而这个EOF不是普通字符,得用系统对应的快捷键来触发。
内容的提问来源于stack exchange,提问作者saul_foodman
相关产品推荐
相关产品推荐

