如何在C中读取不同数量的整数输入?

我将获得三行输入。 第一行将给出2个整数,第三行将给出1个整数。 但第二行可以给我任意数量的整数,范围在1到100之间。例如,输入可以是:

2 1 5 6 1 9 2 10 

或者可能是:

 10 4 5 6 9 

我可以将整数输入的第二行读入整数数组中以获得固定数量的整数,但不能对不同数量的整数执行此操作。 我想,在这种情况下,我应该使用while循环,当scanf()找到换行符时,它会中断。 我该如何编码呢?

  1. 使用fgets()getline()将行读入缓冲区( @John Coleman getline()

  2. 解析字符串以查找可能包含'\n'空格,如果找到则退出循环。 然后调用strtol()sscanf()来读取1号。 检查该函数的错误返回值。

  3. 重复上述步骤。

我实际上是编程的新手,并不知道大多数function。 我所知道的唯一字符串函数是strlen()strcmp() 。 我的i \ ofunction知识仅限于printf()scanf()

无论如何,我用这种方式解决了我的问题:

 int a[101]; int i, num; char ch; for (i = 0; i < 101; i++) a[i] = 0; while (1) { scanf("%d%c", &num, &ch); i = num; a[i] = num; if (ch == '\n') break; } 

这有效! num的值必须等于值i因为我的程序需要它。