C中scanf和getchar之间的差异

时间:2015-07-17 22:54:32

标签: c scanf getchar

我试图向我的朋友解释有关C编码的事情,他问我为什么他的代码(带有“scanf”)不起作用。

#include

int main() {
char x=scanf("%c",&x);
printf("%c\n",x);
return 0;
}

这一个是

#include <stdio.h>

int main()
{
int k;
char x=getchar
printf("%c\n",x);
return 0;
}

1 个答案:

答案 0 :(得分:1)

scanf完成后,x包含已读取的字符。但是,当x分配了scanf的返回值时,会立即覆盖该值,这是成功匹配的项目数或发生错误时的EOF。

如果您在未将返回值分配给scanf的情况下致电x,则应获得预期结果。

例如,这应该有用。

char x;
scanf("%c",&x);