C语言中用scanf函数输入字符时,为什么要在输入控制符%c前面加空格?用scanf还有哪些要注意?

如题所述

空格确实不是必须的,但有了空格就可以忽略你输入的空格。
例如:scanf("
%c"
,&c),你输入了'
a'(a前面有个空格),a就能被c接受。
但控制符前如果没空格,那c就接受了空格,这个可以防止误操作,忽略空格输入,接受第一个非空格输入。

注意事项:
对于scanf()而言,%c是个较为特殊的说明符。
%c前没空格,scanf()将读取标准输入流中的第一个字符,%c前有空格,scanf()则读取标准输入流中第一个非空白字符,屏蔽了空白字符。
扩展资料:
scanf
C语言中常用的标准输入输出函数,它的常规用法是scanf(“输入格式”,输入地址),scanf从输入缓冲区取入数据按照指定的“输入格式”存储到指定的“输入地址”。
但是有一类问题通常令人头疼,那就是字符串的读入,此处仅仅讨论使用scanf读取字符串的一些问题。理论上你只需要定义一个字符指针,然后scanf每次读入字符存储到该指针所指的存储空间,之后指针值自动加1。
参考资料:搜狗百科C语言
温馨提示:内容为网友见解,仅供参考
第1个回答  2020-03-12
空格不是必须的,scanf("%c
%c",a,b)只是提示在输入时两个字符必须有空格间开。如果是scanf("%c%c",a,b)那没两个输入字符不要有空格,不过编程时最好加上空格,这算一个书写规范吧,要不然如果你scanf("%s%s",a,b)系统可能区分不了你的字符串何时结束。
第2个回答  2020-03-02
这绝对不是为了美观,1楼不要误人子弟。
空格确实不是必须的,但有了空格就可以忽略你输入的空格,懂我的意思吗?
比如scanf("
%c"
,&c);
你输入了'
a'(a前面有个空格),a就能被c接受。但控制符前如果没空格,那c就接受了空格,明白了没?这个可以防止误操作,忽略空格输入,接受第一个非空格输入!
相似回答