通过scanf输入时,双打表现得很奇怪

Mat*_*ray 0 macos command-line scanf objective-c

我在Objective-C中实现了一个用于OOP练习的小cmd计算器.我正在获取双打输入scanf()并获取输入,我用于%f格式化然后将其放入double变量中.由于某种原因,它总是读取输入奇数.我不知道发生了什么,但当我将所有类型更改为int时,它完美地完成了.

Kei*_*son 5

scanf()double 的格式是"%lf".

printf()可以使用相同的"%f"两种格式floatdouble,因为float参数可变参数功能提升到double.没有这样的促销,scanf()因为你传递一个指针,你需要在内存中有一个实际floatdouble对象.