c - 在 C 中使用 EOF 和 getchar() 进行字符计数

标签 c windows eof getchar

Possible Duplicate:
Why doesn't getchar() recognise return as EOF in windows console?

我是 C 语言新手,正在尝试弄清楚 EOF 和 getChar() 是如何工作的。

#include <stdio.h>

main()
{

int number = 0;
while(getchar() != EOF)
     number++;

printf("%d", number);
}

当我输入一些随机字符时,程序不会执行任何操作,我认为它永远不会脱离 while 循环。这是为什么?我在 Windows 7 上使用 CodeBlocks。

最佳答案

因为您没有发送 EOF 字符。 “EOF”代表“文件结束符”;控制台输入(称为“标准输入”)是文件的一种特殊情况。但为了表示这个特殊文件已经结束,需要发送一个特殊的信号。在 Windows 上,您可以通过按 Ctrl+Z(由于某种原因,然后按 Enter)来获得此效果。

关于c - 在 C 中使用 EOF 和 getchar() 进行字符计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10900064/

相关文章:

asp.net - 是否有任何 CMS 可以轻松地重新创建此模型?

windows - Azure 通过 XML 文件实现的可扩展性

c - 当我按 ctrl + D 时,为什么我的程序会在结束之前打印一些内容?

c - Pthread同步查询

c - 解释如何仅使用这两行 : 在 C 中为二维数组分配和释放内存

c - 为什么 gcc 在优化版本中使用 jmp 调用函数

windows - 为什么在 Vim 中将 Esc 重新映射到 CAPS LOCK 如此复杂?

sql - 即使有从 VBA SQL 返回的记录,EOF 值也始终为真

c - 如何读取文件 C,fscanf 结尾

c - 访问冲突读取位置 C 数组