格式串中的空白字符
格式串中的空白字符可以与输入中任意数量的空白字符匹配,包括0个。
输入中的空白字符
- 格式串中%d,%f,%lf,%Lf在输入中寻找对应项,即寻找数的起始位置的时候,scanf会忽略空白字符(空格符,水平和垂直制表符,换页符和换行符。
- 格式串%c在输入中寻找对应项,无法忽略空白字符。因为空白字符本身也是字符。
注意:%s其实不是简单地代表字符串。在scanf中与%d等类似。从第一个非空白字符读起,到空白字符为止。比如说:输入 this is 输出会显示this。除非采用多个%s - 当遇到其他普通字符如/,如果格式串没有空白字符,输入中却含有空白字符,即输入中的空白字符无法与格式串中的空白字符匹配(因为格式串中没有)。那么输入中的空白字符将会与格式串中的下一个其他字符匹配(如/),此时匹配出现错误。
#include<stdio.h>
int main(void)
{
int a,b;
scanf("%d/%d",&a,&b);//输入3 /2 3后面的这个空格与/匹配错误
printf("%d %d", a,b);//输出3 -858993460出现错误
}