我正在编写一个简单的C程序,以将距离分为某些范围,例如短长或中等。我知道C会在小数点后取消数字以存储为int。这使我感到困惑,为什么在scanf期间我不能输入7.5之类的数字?因为那会导致我出错。
为什么不能将其读入我的scanf中却是7?是否因为“。”的击键。声明int变量根本不能被接受吗?为什么会这样呢?
我想你的意思7.5
不是7+.+5
。
这只是scanf
函数的工作方式。如果指定%d
,则表示“读取整数”。指定时%f
,表示“读取浮点值”。scanf的文档提供了有关已读内容和停止内容的完整详细信息。
如果要读取带小数的值而忽略小数,则有许多选择:
double
并随后转换为intint
并检查以下内容.
; 如果找到一个,则读取另一个int我个人不希望使用scanf,在读取整数或浮点值时,它具有不可避免的UB。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句