繁体   English   中英

在while循环中使用时如何访问scanf的返回值?

[英]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 的返回值,以便我可以检查它是否确实获得了两个整数。 通常我只会写 if( scanf ( ... ) != 2 ) { return 1; }.

谢谢!

while (1) {
   int rv = scanf("%d %d", &order, &system);
   if (rv == EOF) {
      ...
   }

   ...
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM