【问题标题】:scanf function in objective-c, float and doubleObjective-c,float和double中的scanf函数
【发布时间】:2014-07-14 14:11:05
【问题描述】:

我只是 Objective-C 的初学者。

下面是温度计算器。

我在互联网上找到了解决方案。问题是scanf。

一开始我把f设置成double,但是程序有问题。

所以我把它改成浮动。

请问objective-c中的scanf函数是怎么回事?

只能设置字符、整数和浮点数?

另一个问题是,如果我想设置一个双精度,在另一个只接受双精度变量的函数中使用呢?

谢谢

进口

int main(int argc, const char * argv[]) {

@autoreleasepool {
    double c;
    float f;
    NSLog(@"Please enter F temp");
    scanf("%f", &f);
    c = (f-32) / 1.8;
    //c = 1.3E-3;
    // insert code here...
    NSLog(@"The C temp is %.3f", c);

}
return 0;

}

【问题讨论】:

    标签: objective-c scanf


    【解决方案1】:

    %f 用于float,将%lf 用于double。但是请务必检查来自scanf()(或sscanf())的返回值,以确保它解析了正确数量的值:

    double d;
    printf("Entry thy number mortal: ");
    if (scanf("%lf", &d)) == 1) {
        printf("Oh that's nice, you entered %f\n", d);
    }
    

    【讨论】:

    • 感谢您的建议。我还有一个问题,为什么我们需要检查输入的值?什么情况下使用scanf会得到错误的值?再次感谢您的建议。
    • 如果有人输入了像"hello"这样的字符串,它不能转换为浮点数。
    猜你喜欢
    • 2014-04-03
    • 1970-01-01
    • 1970-01-01
    • 2011-05-28
    • 1970-01-01
    • 2019-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多