相关疑难解决方法(0)

为什么getchar()不能在控制台上识别返回EOF?

我在下面有一小段代码,我正在使用PellesC运行.

当代码执行并且我在控制台中输入了几个字符时,我按下回车键.

你能解释一下为什么这printf("%ld\n", nc);条线似乎没有被执行?因为没有输出写入控制台.

#include <stdio.h>

int main(void)
{
    long nc = 0;

    while(getchar() != EOF)
    {
        ++nc;
    }

    printf("%ld\n", nc);
}
Run Code Online (Sandbox Code Playgroud)

我决定使用K&R书彻底学习C,我很尴尬地说这个相当基本的例子让我难过.

c

17
推荐指数
2
解决办法
1万
查看次数

为什么 Ctrl-Z 不会触发 EOF?

为什么Ctrl+Z在下面的小程序中没有触发循环完成?

#include <stdio.h>

main()
{
    int c;
    while ((c = getchar()) != EOF)
    {
        //nothing 
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

如果我输入:test^ZEnter,它不会跳出循环。

我发现了相关问题(此处此处),但没有一个问题可以解释 Windows 下的 C(而不是 C++)。

注意:我在 Windows 8.1 上使用 Visual Studio 2015 PRE

c eof getchar visual-c++

6
推荐指数
2
解决办法
1万
查看次数

标签 统计

c ×2

eof ×1

getchar ×1

visual-c++ ×1