[英]Getting wrong output from c program
我是C编程新手。 我已经编写了一个程序,当通过键盘输入“ a”时,输出为0 1
。 根据我对for
循环的了解,如果条件变为false
,则不应执行主体的语句。 因此,输入“ a”时输出应为0
。
#include<stdio.h>
main()
{ int c;
long nc=0;
for(nc=0;c=getchar()!=EOF;++nc)
{
printf("%ld \n",nc);
}
}
您输入a
then <return>
,因此可以输入2个字符,第一个写入0
,第二个写入1
。 一切正确。
-OP要求的解释-
从nc
等于0开始,首先调用getchar()
读取a
, nc
等于0然后打印0
, nc
递增,因此现在等于1; 然后对getchar()
第二次调用读取newline
, nc
等于1然后输出1
, nc
递增,因此现在等于2。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.