为什么scanf不能输入字符串

 我来答
糖果乐教育
2022-11-14 · TA获得超过520个赞
知道小有建树答主
回答量:1644
采纳率:100%
帮助的人:23.9万
展开全部

scanf不能输入字符串

因为scanf函数遇到空格,换行符或者tab键的时候后会立即结束读取,所以,你输入hello jane,最后读取的只有jane。

如发现第一次输入的内容,scanf并没有全部读取,只读取了第一个空格之前的内容,也就是John,后面的Wilson被临时存储到缓冲区,当出现第二次scanf的时候,就自动将Wilson存储到第二次scanf函数的变量中去了,也就是name2=Wilson。

所以在最后打印name2的值,显示的是Wilson。当我们输入c回车时,scanf从缓冲区把c提走赋予ch,但回车还在缓冲区并未提走,输入字符串时因为回车也是字符所以被赋予给ch1。

如何让scanf输入后不换行

字符输入时:scanf里不带空格时:不要空格不要换行,因为空格和换行都是字符。所以直接输入字符即可,scanf里带空格时:可以空格不要换行,数字(浮点数)输入时:可以换行可以空格,因为他们都不是一个数字。 

scanf里不带逗号时:不要逗号,不然第二个数会变成0 ,scanf里带逗号时:可以有逗号。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式