在scanf()函数中的字符控制符前加一个空格

有什么用,为什么

这绝对不是为了美观,
空格确实不是必须的,但有了空格就可以忽略你输入的空格,懂我的意思吗?
比如scanf(" %c" ,&c);
你输入了' a'(a前面有个空格),a就能被c接受。但控制符前如果没空格,那c就接受了空格,明白了没?这个可以防止误操作,忽略空格输入,接受第一个非空格输入!
温馨提示:内容为网友见解,仅供参考
第1个回答  2017-09-26

#include<stdio.h>
#include<ctype.h>


int main()
{ float sum=0.0;
int count=0;
float number;
char answer;



for(;;)
{
printf("\nenter a number:");
scanf("%f",&number);
sum+=number;
count++;
printf("Do you want to read and process some more(y/n):");
scanf("%c",&answer);
if(tolower(answer)=='n')
break;
}
printf("%f",sum/count);
return 0;
}

如果scanf的字符控制符%c前面不加空格的话,就像第一幅图,(y/n)后面识别一个空格

如果加了空格

见下面

第2个回答  2017-10-02
并不是忽略空格,而屏蔽非空白字符(包括换行符,制表符和空格符)
相似回答