【发布时间】:2019-02-01 22:27:10
【问题描述】:
我是 C 新手,如果这个问题是基本的,我很抱歉。我正在尝试了解 getchar() 函数的行为。
我的代码有两个版本:
第一个:
#include <stdio.h>
int main()
{
int c = getchar();
while (c != EOF)
{
putchar(c);
c = getchar();
printf(" hello\n");
}
}
当我输入 12 并按下返回键时,这会产生:
12
1 hello
2 hello
然后还有另一个我将 printf() 向上移动,输入相同的输入
#include <stdio.h>
int main()
{
int c = getchar();
while (c != EOF)
{
putchar(c);
printf(" hello\n");
c = getchar();
}
}
它会产生:
12
1 hello
2 hello
hello
为什么这两个不能以相同的方式工作,为什么额外的问候出现在第二个代码的末尾。
【问题讨论】:
-
尝试将其更改为
printf("hello %d\n", c);
标签: c