1scanf中格式符是%d时,scanf从缓冲区拿东西时候,只认识数字,小数点和正负号,其他都不认;
2scanf中格式符是%c时,scanf从缓冲区拿东西时候,键盘上的所有字符都认识,都会从缓冲区拿;
3scanf中格式符是%s时,scanf从缓冲区拿东西时候,键盘上只有空格会作为分隔符不认识,所以想输入带空格的字符串时候,用gets;
下面举个例子
scanf(" %c",&sex);这一句我特地在%c前面加了一个空格,因为若连续输入两个字符或者先输入一个字符串后输入一个字符,则输入第二个字符的控制符%c
前应加一个空格,格式控制符%c
之前的空格不能省略,否则,两次输入之间的分隔符将被作为第二个字符的输入加以处理。
如下:
这里我把 scanf(" %c",&sex);前面的空格去掉了,很明显f和12.6都无法读取;
所以需要在%c前面加上空格.
最后补充一句%c前面加一个基本单位是空格的东西可以吃掉一个基本单位是空格的东西