printf 是以 两字符宽输出 对应的字符
scanf 是 表示读两个字符,但是这里是%c,所以会把最先读到的字符赋给对应字符变量 但是要注意,其实程序已经读了两字符(及输入流里的前两字符已读过),所以读完该字符给变量后,当有下一个变量也要从输入流读数据时,会直接读第三个字符;
举个例子吧
比如我想定义了两字符 ch1 ch2
然后有该语句 scanf( "%2c%c", &ch1, &ch2 );
printf( "%c\t%c", ch1, ch2 );
然后我在运行该程序输数据时输入 somejob 后 按回车键
这时 输出结果会是 s m
也就是说 读数据至ch2时好像跳过了第二个字符 ,直接把第三字符读入ch2中
但是 如果你写成 scanf( "%c%c", &ch1, &ch2 );
其结果会是 s o
温馨提示:答案为网友推荐,仅供参考