【发布时间】:2018-03-09 16:10:56
【问题描述】:
我有一个长度为 n 的整数的控制台输入空格分隔列表(n 通过控制台读取),需要将其拆分为整数并放置在大小为 n 的数组中。我已经尝试使用 fscan 和 fgets 进行此操作,以解决分段错误或控制台锁定问题,并且不让我进入列表。任何建议:
int main()
{
int n;
scanf("%d", &n);
int buffer = n + n -1;
char input[buffer];
//char * input;
//int buffer = n+n-1;
//fgets(input, buffer, stdin);
scanf("%*c", &input);
printf("c is %c", input[0]);
char * end;
long int l;
end = input;
int base = 10;
int ele = 0;
long int vals[n];
while(l = strtol(end, &end, base)){
vals[ele] = l;
ele += 1;
}
return 0;
【问题讨论】:
-
试试
int buffer = n + n + 1; char *input = malloc(buffer); fgets(input, buffer, stdin); -
scanf("%d", &n);-->scanf("%d", &n); scanf("%*c");
标签: c segmentation-fault scanf fgets