在printf函数中如果输出的超过2个字符还是会按原来的字符
如果不足2个字符
会补空格。
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