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

 我来答
鲜雁员环
2020-03-05 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.3万
采纳率:28%
帮助的人:804万
展开全部
空格确实不是必须的,但有了空格就可以忽略你输入的空格。
例如:scanf("
%c"
,&c),你输入了'
a'(a前面有个空格),a就能被c接受。
但控制符前如果没空格,那c就接受了空格,这个可以防止误操作,忽略空格输入,接受第一个非空格输入。

注意事项:
对于scanf()而言,%c是个较为特殊的说明符。
%c前没空格,scanf()将读取标准输入流中的第一个字符,%c前有空格,scanf()则读取标准输入流中第一个非空白字符,屏蔽了空白字符。
扩展资料:
scanf
C语言中常用的标准输入输出函数,它的常规用法是scanf(“输入格式”,输入地址),scanf从输入缓冲区取入数据按照指定的“输入格式”存储到指定的“输入地址”。
但是有一类问题通常令人头疼,那就是字符串的读入,此处仅仅讨论使用scanf读取字符串的一些问题。理论上你只需要定义一个字符指针,然后scanf每次读入字符存储到该指针所指的存储空间,之后指针值自动加1。
参考资料:搜狗百科C语言
越广英邹月
2020-03-12 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.3万
采纳率:27%
帮助的人:906万
展开全部
空格不是必须的,scanf("%c
%c",a,b)只是提示在输入时两个字符必须有空格间开。如果是scanf("%c%c",a,b)那没两个输入字符不要有空格,不过编程时最好加上空格,这算一个书写规范吧,要不然如果你scanf("%s%s",a,b)系统可能区分不了你的字符串何时结束。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
雅霜0He
2020-03-02 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.3万
采纳率:34%
帮助的人:614万
展开全部
这绝对不是为了美观,1楼不要误人子弟。
空格确实不是必须的,但有了空格就可以忽略你输入的空格,懂我的意思吗?
比如scanf("
%c"
,&c);
你输入了'
a'(a前面有个空格),a就能被c接受。但控制符前如果没空格,那c就接受了空格,明白了没?这个可以防止误操作,忽略空格输入,接受第一个非空格输入!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式