K& R代码在VS2012中不起作用

时间:2014-12-20 22:28:16

标签: c visual-studio-2012

这是来自K& R,它应该计算数字,空白等。我编译得很好但是当我运行时我只是得到一个空白屏幕而我所能做的只是输入输入。这不起作用,因为C语言已经过时了吗?

#include <stdio.h>

main()
{
int c, i, nwhite, nother;
int ndigit[10];

nwhite = nother = 0;
for (i = 0; i < 10; ++i)
    ndigit[i] = 0;

while ((c = getchar()) != EOF)
    if (c >= '0' && c <= '9')
        ++ndigit[c-'0'];
    else if (c == ' ' || c == '\n' || c == '\t')
        ++nwhite;
    else
        ++nother;

printf("digits =");
for (i = 0; i < 10; ++i)
    printf(" %d", ndigit[i]);
printf(", white space = %d, other = %d\n", nwhite, nother);
}

2 个答案:

答案 0 :(得分:2)

好吧,简单地说。键入ctrl + d后,此循环将结束。如果您希望在按Enter键时结束,只需稍微修改一下:更改

while ((c = getchar()) != EOF)

while ((c = getchar()) != '\n')

答案 1 :(得分:2)

编写程序以获取输入,直到文件结束字符。由于您正在使用DOS,请输入Ctrl + Z来终止输入(您必须按&#34;输入&#34;在Ctrl + Z之后,因为键盘输入将被行缓冲)。

在编辑时:Ctrl + Z是Windows / DOS世界中的文件结束(EOF)字符。在UNIX / Linux环境中,它(通常)是Ctrl + D.