我必须从 main 创建并调用一个函数。然后我必须调用 scanf 来读取两个整数并打印出较大的一个。然后我必须执行另一个 scanf,但这次使用 double 而不是整数。
int main()
{
int x, y;
scanf("%d%d", &x, &y);
if (x > y)
{
printf("%d", x);
}
scanf("%lf%lf", &w, &z);
if ( w > z)
{
printf("%f", w);
}
return 0;
}
我不确定我这样做是否正确,我将如何检查返回值以查看 scanf 是否有效?谢谢。
最佳答案
how would I check the return value to see that the scanf worked?
通过检查scanf()的返回值。
if( scanf("%d%d", &x, &y) != 2)
{
/* input error */
}
if (x > y)
{
printf("%d", x);
}
if(scanf("%lf%lf", &w, &z) != 2)
{
/* input error */
}
if ( w > z)
{
printf("%f", w);
}
来自 scanf()文档:
These functions return the number of input items successfully matched
and assigned, which can be fewer than provided for, or even zero in
the event of an early matching failure.
The value EOF is returned if the end of input is reached before
either the first successful conversion or a matching failure occurs.
EOF is also returned if a read error occurs, in which case the error
indicator for the stream (see ferror(3)) is set, and errno is set
indicate the error.
关于c - 有没有办法将 scanf 与 "if"和 "else"语句一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16685301/