从c程序中获取错误的输出

时间:2016-09-27 16:02:24

标签: c

我是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);
    }
}

1 个答案:

答案 0 :(得分:3)

您输入了a然后<return>,因此有2个字符可用于输入,0是为第一个而写的1。一切都正确。

- OP要求的解释 -

nc开始等于0,第一次调用getchar()读取anc等于0,然后打印0,{{1} }递增所以现在等于1;然后第二次调用nc读取getchar()newline等于1,然后打印nc1递增,现在等于2。