Scanf()的返回值是成功输入的个数,比如
Scanf(“%d %d %d”, &a,&b, &c);//a、b、c为int类型
输入1(空格)2(空格)a,则返回2,前面两个为int类符合%d故成功,后面字母a输入失败
输入a则返回0,因为scanf在类型不对的时候会把错误的输入留在缓冲区留给下一个输入来接受,并且关闭这一次输入(直接执行下一句)
如果后面遇到scanf语句的话则会把a作为输入,传到下一个scanf,如果还是不合法则继续留在缓冲区并且关闭这次输入
%d会无视(跳过)不可视字符,如回车符跟空格
%c则会接收空格跟回车符
scanf里面加入空格是因为scanf加入空格之后会跳过不可视字符直到输入非不可视字符,这样的话,用户可以就用空格跟回车来隔开要输入的数据