【发布时间】:2016-09-25 15:58:20
【问题描述】:
我需要创建一个未知大小的整数数组并将它们全部传递。我的代码如下所示:
int FillTable(int a[], int max){
int i;
int x = 0;
int m = 0;
for (i = 0; i < max; i++){
printf("Fill the table with integers: ");
scanf("%d", &m);
if (m != "" && m != NULL){
a[i] = m;
}else if (m != "" && m == NULL){
a[i] = 0;
}else{
break;
}
}
printf("\n");
return 0;
}
我知道您可以传递多个用空格分隔的整数,例如:
scanf("%d %d %d", &var1, &var2, &var3);
但我不知道如何传递一些我不知道会有多少的整数。我可以用一堆 %d 创建一个字符串,然后重复 max 次吗?我不知道,但现在,我只要求整数,直到数组已满,如果用户不输入,我需要能够让数组小于 max足够的价值。有人对我将如何扫描未知数量的整数有任何想法吗?
【问题讨论】:
-
你没有说你的代码有什么问题。这看起来像 XY problem。
-
@AT-2016 为什么这个问题是相关的?
-
@iharob,编辑它以更好地询问问题
-
检查
m不是查看是否已读取值的方法。scanf()返回一个值,指示它已读取多少个值。如果它返回零(表示它没有读取任何值)或EOF(表示错误情况),那么您可以停止读取。阅读文档!