对scanf("%d%d", &a, &b);
再个%d间默认匹配空白符(包括TAB、SPACE、CARRIAG)。
对scanf("%d,%d", &a, &b);
只有逗号和第二个%d间默认匹配空白符,而第一个%d与逗号间无空白符匹配,所以在输入时逗号要紧接上一个数据,否则scanf会结束,且只对a赋值成功,对b默认赋值为0。
对scanf("%d ,%d", &a, &b);
第一个%d和逗号间有一个空格,能匹配任意空白符,所以此时逗号不需紧接上一个数据,当然紧接的话也不会错(这应该是C的容错设置)。
对%c,scanf可接收空格、转义符等任意字符。
#include <stdio.h>
main()
{
char a1, a2;
scanf("%c%c", &a1, &a2);
printf("#%c# #%c#", a1, a2);
}
网上有个教程还不错:http://blog.csdn.net/luxuejuncarl/article/details/1576513