码迷,mamicode.com
首页 > 编程语言 > 详细

C语言中scanf的一些问题

时间:2015-10-13 12:21:18      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:c语言   scanf函数   结构体   

关于scanf的问题:

技术分享

分别调用13行14行结果如下:

技术分享

技术分享

原因是,scanf是一个从输入流读取字符并且格式化转换的函数,13行的输入格式因为没有给定字符串的长度,因此将空格也作为字符串的内容一起读取了。然而,空字符被当作了字符串的结尾,读取停止,这个空白字符被当作对b的输入,所以b是空格,d显示出来是hell。

当以14行的方法输入时,这时的空格被当作输入 格式被读取(跳过),转而继续读取后面的字符。

对于int型+char变量使用13行方式可以正确显示,因为%d将输入解释为十进制数,遇到空字符停止,将其他输入当作字符读入。


对于int+int以16行的方式输入时必须使用空字符隔开来读入两个数,而且对于除数字及空字符之外的其他字符都解释为0.

技术分享

技术分享


本文出自 “moLova” 博客,请务必保留此出处http://molova.blog.51cto.com/10594266/1702451

C语言中scanf的一些问题

标签:c语言   scanf函数   结构体   

原文地址:http://molova.blog.51cto.com/10594266/1702451

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!