在 while 循环中使用时如何访问 scanf 的 return 值?
How to access return value of scanf when used in a while loop?
这段代码的目的是等待用户输入两个整数,然后用它们做一些事情。但是,我不希望我的程序在读取 2 个值时停止,相反,我希望它遵循 while 循环内的指示,并在完成后向用户询问更多整数。
int main (void){
while(scanf("%d %d", &order, &system) != EOF){
if(order < 0 || system < 2 || system > 36){
printf("Invalid input!\n");
return 1;
}
// Do something with the numbers
}
return 0;
}
我在这里面临的问题是我不知道如何存储 scanf 的 return 值,以便我可以检查它是否确实获得了两个整数。通常我会写 if( scanf ( ... ) != 2 ) { return 1; }.
谢谢!
while (1) {
int rv = scanf("%d %d", &order, &system);
if (rv == EOF) {
...
}
...
}
这段代码的目的是等待用户输入两个整数,然后用它们做一些事情。但是,我不希望我的程序在读取 2 个值时停止,相反,我希望它遵循 while 循环内的指示,并在完成后向用户询问更多整数。
int main (void){
while(scanf("%d %d", &order, &system) != EOF){
if(order < 0 || system < 2 || system > 36){
printf("Invalid input!\n");
return 1;
}
// Do something with the numbers
}
return 0;
}
我在这里面临的问题是我不知道如何存储 scanf 的 return 值,以便我可以检查它是否确实获得了两个整数。通常我会写 if( scanf ( ... ) != 2 ) { return 1; }.
谢谢!
while (1) {
int rv = scanf("%d %d", &order, &system);
if (rv == EOF) {
...
}
...
}