如何在C中读取不同数量的整数输入?
我将获得三行输入。 第一行将给出2个整数,第三行将给出1个整数。 但第二行可以给我任意数量的整数,范围在1到100之间。例如,输入可以是:
2 1 5 6 1 9 2 10
或者可能是:
10 4 5 6 9
我可以将整数输入的第二行读入整数数组中以获得固定数量的整数,但不能对不同数量的整数执行此操作。 我想,在这种情况下,我应该使用while循环,当scanf()
找到换行符时,它会中断。 我该如何编码呢?
-
使用
fgets()
或getline()
将行读入缓冲区( @John Colemangetline()
。 -
解析字符串以查找可能包含
'\n'
空格,如果找到则退出循环。 然后调用strtol()
或sscanf()
来读取1号。 检查该函数的错误返回值。 -
重复上述步骤。
我实际上是编程的新手,并不知道大多数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
因为我的程序需要它。