【问题标题】:scanf is returning 2, not truescanf 返回 2,不是真的
【发布时间】:2013-01-14 19:42:49
【问题描述】:
int main(void){
    float f=0,ff=0;
    if (scanf("%f %f",&f,&ff) == 2){
        printf("True\n%f %f",f,ff);fflush(stdout);
    } else{
        printf("False\n%f %f",f,ff);fflush(stdout);
    }

    getchar();
    return 0;
}

如果我的输入是“6.81 7.kj”,则返回 true!

【问题讨论】:

  • 7. 是一个有效的浮点数。剩下的输入更多这一事实与调用的成功无关。
  • @Flexo 这应该是答案。
  • @Flexo 谢谢。我刚刚检查了在“ff”处放置更多数字和字符,并且 scanf() 按预期工作。这意味着你是对的。
  • fflush(stdin) 具有未定义的行为。只需删除该行。
  • 您可能需要重新命名您的标题。 scanf 返回 2,不是真的。

标签: c return scanf


【解决方案1】:

7. 是一个有效的浮点数。剩下的输入更多的事实与调用的成功无关。

【讨论】:

    猜你喜欢
    • 2015-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-29
    • 1970-01-01
    • 2016-07-10
    • 1970-01-01
    • 2014-09-24
    相关资源
    最近更新 更多