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

时间:2012-01-11 03:47:27

标签: objective-c macos command-line scanf

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

1 个答案:

答案 0 :(得分:5)

double的scanf()格式为"%lf"

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