c++ - 为什么这个 scanf 返回 false?

标签 c++ c

此 scanf 应始终返回 true 直到我输入非数字输入,但此 scanf 从不执行 while 循环。为什么?

示例输入:

10.0 5.0
Press [Enter] to close the terminal ...

代码:

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char** argv)
{
    float a, b;
    while ( scanf("%f %f", &a, &b) == 1 )
    {
        printf("%f\n", (a - b) / (a * b));
    }
    return (EXIT_SUCCESS);
}

最佳答案

scanf 返回读取的项目数,在本例中为 2。

关于c++ - 为什么这个 scanf 返回 false?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3923558/

相关文章:

C++11 线程 - 非静态成员函数的无效使用 - 工作 gcc 5.1.0 损坏的 gcc 7.3.1

c++ - MinGW 作为可靠的 64 位 GCC 编译器

c - GetInt() 是否在这里自动创建\n 输出?

c - 从动态数组中删除元素时,是否需要在 memmove 之后重新分配?

c - 在控制台上写入和在 C 中写入文件时的输出差异

c - 为什么我的程序在调试时崩溃了?

c++ - 将返回类型推导为模板参数方法的类型

c++ - 根据输入初始化特定的子类

c++ - 有没有办法在 cout (C++) 中隐藏变量?

c - printf 和 g_print 的参数 - 许多语法,相同的结果