c - 为什么在输入一些文本并按下 "enter"键 (EOF) 后 printf 语句不在这里执行?

标签 c printf eof

代码,源自《The C Programming Language, Second Edition》:

#include <stdio.h>

main()
{
  long nc;

  nc = 0;
  while(getchar() != EOF)
    ++nc;
  printf("%s: %ld\n", "number of characters", nc); 
}

为什么在按下“enter”键(EOF)后“printf”语句不执行?

最佳答案

回车键不是 EOF。根据您的系统,它会发送一个回车符(0x0D 或 '\r'),一个换行符(0x0A 或 '\n'),或两者。

在 Linux(可能还有 Unix)上,可以通过 Ctrl+D 发送 EOF。在 Windows 上,它应该是 Ctrl+Z(但之后您可能需要按 Enter)。

关于c - 为什么在输入一些文本并按下 "enter"键 (EOF) 后 printf 语句不在这里执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4135322/

相关文章:

c - microblaze 中的 printf 用于十六进制到 char

c - 如何从 C 中的主函数打印 argv 参数?

c - for 循环条件下的 getchar()

c - C如何在printf语句中编译 "senthil"“kumar”?

c - Linux C 如何获取 !eof 事件?

c - 我的程序没有找到 EOF 符号

c - 通过套接字c读取整数

c - 如何获取已安装文件系统的列表

c - 排序数组无法使方法起作用

c - 我如何在c中查看带参数的数组是否为空