%c和getchar()都是一次读取一个字符,直接输入123(输入里没空格),然后回车,输入的前四个字符赋值到了c1到c4字符变量中,具体是:c1='1', c2='2', c3='3', c4='\n';
然后输入45678,然后回车,这里输入的前两个字符赋值到了c5和c6,后面的字符没有起作用,具体是:c5='4',c6='5',所以打印字符c1,c2,c5,c6,结果就是 :1245,然后一个换行, 测试如下:
#include <stdio.h>
int main(void){
char c1,c2,c3,c4,c5,c6;
// 这里%c用于从输入读取一个字符到相应字符变量
scanf("%c%c%c%c",&c1,&c2,&c3,&c4);
c5=getchar(); // 从输入读取一个字符存入c5中
c6=getchar(); // 从输入读取一个字符存入c6中
putchar(c1); // 打印字符变量c1
putchar(c2); // 打印字符变量c2
printf("%c%c\n",c5,c6); // // 以字符的形式打印字符变量c5和c6,然后打印一个换行
return 0;
}