我的输入包含一个整数序列,需要保存在一个动态数组中。整数的个数是序列的第一个整数。例如:3 23 7 -12
或5 -777 3 56 14 7
序列为ONE输入。
我如何扫描这样的输入?
对于scanf("%i %i %i ...",)
,我需要提前知道整数的数量,而我不知道。
使用多个scanf
调用。首先读取计数,然后在循环中读取值。
int count;
scanf("%i", &count);
int values[count];
for (int i=0; i<count; i++) {
scanf("%i", &values[i]);
}
请注意,这并不包括对无效值的错误检查。
可以通过do-while循环来实现:
int status = 0;
do {
status = scanf("%d", &placeToStoreVariablesAt);
} while(status);
注意,scanf()返回输入的正确类型的元素个数。如果输入字符,则status变为0,因此程序退出循环。