我已经读到,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/