我正在编写一个简单的C程序,将距离分为特定范围,例如短长或中等 我知道C会取消小数点后的数字以存储为int。 所以这让我很困惑,为什么我不能在scanf期间输入7.5之类的数字?因为这会导致我犯错误。
为什么它不能直接读入我的scanf? 是因为击键“。”在声明一个int变量时根本无法接受? 它究竟是为什么?
答案 0 :(得分:4)
我猜您的意思是7.5
而不是7+.+5
。
这就是scanf
函数的工作方式。指定%d
时,表示"读取整数"的数字。指定%f
时,表示"读取浮点值"。 scanf的文档提供了有关读取内容和停止内容的完整详细信息。
如果要读取带小数的值并忽略小数,则有很多选项:
double
并在之后转换为int int
并检查以下.
;如果找到一个我个人不喜欢不使用scanf,它在读取整数或浮点值时有不可避免的UB。