Scanf详解

对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

原文地址:https://www.cnblogs.com/cnsealine/p/3591031.html