C语言中scanf和getchar的区别

Differences between scanf and getchar in C

我试图向我的朋友解释一些关于 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;
}

scanf 完成时,x 包含读取的字符。但是,当 x 被赋予 scanf 的 return 值时,该值会立即被覆盖,这是成功匹配的项目数或出现错误时的 EOF。

如果您调用 scanf 而未将 return 值分配给 x,您应该会得到预期的结果。

例如,这应该有效。

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