K&R编程书C示例getchar()错误[已关闭]

pvcm50d1  于 2023-01-25  发布在  其他
关注(0)|答案(1)|浏览(114)

昨天关门了。
Improve this question

#include <stdio.h>

main(){

    int c;
    c = getchar();
    if ((c = getchar()) ==  EOF)
        putchar(c);
}

我多次键入这个程序,试图让它计算字符数。编译并运行./a. out后,我得到的只是我在控制台上输入的字符,没有打印出计数。当我厌倦了输入时,我必须做一个ctl z来使它停止。仍然没有打印出计数。这完全不是我在阅读有关程序示例的文本时所期望得到的。如何编写这个程序来获得键盘上键入的字符数?这不是示例的对象吗?
添加\n也没有帮助。为什么在这个例子中使用EOF?这里似乎没有测试文件结束?

lsmepo6l

lsmepo6l1#

K&R编程书C++示例错误
聪明人从错误中学习。你责怪你的工具。各归各。
现在回到你错误的假设:

  • 那个代码什么都不算,它只会回应你输入的字符。
  • 由于代码是测试EOF,所以输入以EOF字符结束,在Windows上(至少我从你的语气推测),这是一个空行上的CTRL-D字符。

相关问题