printf("%c%c%c",getchar(),getchar(),getchar())
为啥打出来的字符串是反的
printf 后面的参数 是 按从左往右 入栈, 然后 从右往左 出栈计算, 所以 最右边的getchar() 先 接收字符,最后 输出 按 从左往右输出
因为printf的顺序规定了从右到左。 类似的你看这里 https://blog.csdn.net/wd1603926823/article/details/129003849
【下图可能好理解点】
【改成这样就是正序了】
char a = getchar();
char b = getchar();
char c = getchar();
printf("%c%c%c", a, b, c);
getchar()和putchar()函数是单个字符输入/输出函数,getchar有一个int型的返回值。当程序调用getchar时.程序就等着用户按键。用户输入的字符被存放在键盘缓冲区中。直到用户按回车为止(回车字符也放在缓冲区中)。当用户键入回车之后,getchar才开始从stdio流中每次读入一个字符。getchar函数的返回值是用户输入的字符的ASCⅡ码,如出错返回-1,且将用户输入的字符回显到屏幕。如用户在按回车之前输入了不止一个字符,其他字符会保留在键盘缓存区中,等待后续getchar调用读取。也就是说,后续的getchar调用不会等待用户按键,而直接读取缓冲区中的字符,直到缓冲区中的字符读完为后,才等待用户按键。
#include <stdio.h>
int main()
{
int c;
printf("请输入一个字符:");
c = getchar();
printf("\n你的输入: ");
putchar(c);
printf("\n");
return 0;
}