我在Objective-C中实现了一个用于OOP练习的小cmd计算器。我通过scanf()
获取双打输入并获得输入,我使用%f
进行格式化,然后将其放入double
变量中。由于某种原因,它总是读取输入奇数。我不知道发生了什么,但当我将所有类型更改为int时,它完美地完成了。
答案 0 :(得分:5)
double的scanf()
格式为"%lf"
。
printf()
可以对"%f"
和float
使用相同的double
格式,因为可变参数函数的float
参数会提升为double
。 scanf()
没有这样的促销,因为你传递了一个指针,你需要在内存中有一个实际的float
或double
对象。