我应该遵循这本书“c编程语言第2版”,但其中的一些代码不起作用

时间:2015-09-22 12:27:54

标签: c

我发现这本书有很多人建议新手使用,但是有些代码不起作用,虽然我的代码与书中的代码完全相同,但它仍然不起作用

#include <stdio.h>
main()
{
     int a ;
     for (a = 0; getchar() != EOF ; ++a);
     printf ("%d",a);
}

它看起来像循环后立即结束,循环后的代码没有被执行。

这本书太旧了吗?还有另外一本自学c编程的书吗?

2 个答案:

答案 0 :(得分:1)

int main( void ) 
{
     int a ;
     for (a = 0; getchar() != EOF ; ++a);
     printf ("%d\n",a);  
     return 0;
}

在Unix平台上运行此代码,当您想要退出时EOF引入ctrl+d,如果您在Windows上,则EOF引入ctrl+z

所以基本上当你退出时,你将获得循环运行次数的计数。

如果您想打印出每个输入,那么您需要摆脱;循环结束时的for

int main( void ) 
{
     int a ;
     for (a = 0; getchar() != EOF ; ++a)
     printf ("%d\n",a);  
     return 0;
}

答案 1 :(得分:0)

我强烈怀疑在循环结束后控制台会立即关闭。尝试插入类似system("pause")的内容以防止控制台关闭。

循环循环,直到您输入EOF并打印到目前为止输入的字符数。要键入EOF,你必须按ctrl-z并返回(在测试中我必须在返回后执行此操作,因此返回,然后按ctrl-z,然后返回)。如果控制台在ctrl-z之后直接关闭,您可以添加此system("pause")以等待其他键,以便您看到输出。