输入为空时如何停止扫描(扫描未知数量的整数)

时间:2016-11-23 00:18:42

标签: c scanf

我目前正在开发一个扫描每个int的程序,并确定它是否完美。问题是,我不知道输入中有多少个整数,所以我想知道如何在输入结束时停止扫描。

代码:

#include <stdio.h>

int main() {
  int input[500], count;
  for (count = 0; count < 500; count++) {
    scanf("%d", &input[count]);
    if (input[count] == 0)
      break;
  }

  for (count = 0; count < 500; count++) {
    if (findFactors(input[count]) % input[count] == 0)
      printf("%d perfect\n", input[count]);

    else if (findFactors(input[count]) % input[count] <= 2 ||
             findFactors(input[count]) % input[count] >= input[count] - 2)
      printf("%d almost perfect\n", input[count]);

    else
      printf("%d not perfect\n", input[count]);
  }
}

在这种情况下,我需要输入500个数字才能运行代码。我需要它在输入为空时运行。我知道有&#39; / 0&#39;或其他什么,但我不知道如何在此代码中使用它。

1 个答案:

答案 0 :(得分:0)

使用函数时,请阅读doc

返回值

  

这些函数返回成功匹配的输入项数   和分配,可以少于提供,甚至零   早期匹配失败的事件。

所以你需要检查scanf的返回值:

# 0 is the script itself, technically an argument to python
script = sys.argv[0]

# 1 is the command arg you passed
command = sys.argv[1]

# 2 is the comport arg you passed
comport = sys.argv[2]