C Programming Language学习中遇到的问题

来源:互联网 发布:医疗网络咨询 编辑:程序博客网 时间:2024/06/05 20:10

C Programming Language

第19页,

intnc,i=0;

while(nc=getchar()!=EOF)

   {

     if(nc=='\n')

     {

        ++i;

     }

   }

 

   printf("%d\n",i);

 

此段程序始终存在bug,if()那句始终跑不到。

核查后发现是由于在第二句,即nc = getchar() != EOF这里少了一对括号,

应为((nc=getchar())!=EOF)

 

第17页曾详细说明,c = getchar() != EOF与c = (getchar() != EOF)等价。

即上面程序存在bug的原因是c所赋的值始终为1.不满足’\n’(即10)的条件。

1 0
原创粉丝点击