c - 发生错误时,scanf 返回 1 而不是 0

标签 c input return scanf c99

我已经读到,scanf 的返回值表明它是否能够成功读取和转换值。 我使用返回值来检测输入是否为整数,但如果输入为 4.5 scanf 则返回 1 而如果输入为 g scanf 返回 0。 她是我的代码:

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

int main()
{
    int x;
    int ReturnedValue=scanf("%d",&x);
    printf("Scanf Returned:%d",ReturnedValue);
    return 0;
}

在多篇不同的文章中,您建议使用 scanf 的返回值来检测整数,但为什么这现在不起作用?

最佳答案

返回值并不表示成功或失败。它是成功转换值的数量。

这就是为什么在格式为 "%d" 的“4.5”上得到“1”,“4”已转换。

通过阅读 scanf() 的文档,您会发现这一点。

关于c - 发生错误时,scanf 返回 1 而不是 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59078784/

相关文章:

Javascript 运费计算器不抓取输入

javascript - 如何将输入存储到 HTML 和 Javascript 中的变量中?

javascript - 在 Javascript 中返回一个字符串

javascript - django view 是否有可能返回 javascript 函数

c - 段错误 : 11 (caused by strncpy())

c - 在不动态分配内存的情况下在C中复制任意类型

c - 最小最大数字数组

c - "Illegal hardware instruction"来自非常简单的代码

javascript - 如何使用 Javascript 中的输入修复 'Cannot read property ' value' of null'

javascript - 我怎样才能让这个 JSONP 调用返回一个值?