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)的条件。