【发布时间】:2018-11-01 20:45:30
【问题描述】:
我将接收用户输入,其中包含他们的身份和标记,用空格分隔。代码编译,我可以在提示符处输入答案,但是,在提示符结束时(第一个循环结束),出现“中止陷阱:6”。
如果您能帮助我找出出现此评论的原因,我将不胜感激。我读到它可能是我覆盖了其他内存,但看起来我的循环并没有超出我希望它们循环的范围(用户给了我 10 个答案)。
我还在 scanf 的数组前面添加了 & 符号,我觉得这样做很奇怪,但是代码没有编译通过。
包括
int main (void){
char id[10];
int mark[10];
for (int i=0;i<10;i++){
printf("Enter ID and mark: \n");
scanf(" %s %d", &id[i], &mark[i]);
}
for (int i=0;i<10;i++){
printf("%c ",id[i]);
}
}
【问题讨论】:
-
附言。我还在第一个循环中的 printf 之后使用了“gets”,使用一个数组来包含 id 和 mark,但是,这也导致了相同的“Abort error: 6”。
-
您扫描的字符串是否仅使用 1 个字符?为什么不在 scanf 中使用
%c? -
很抱歉没有解决这个问题。
-
我收到的ID会是:j134432(一个字母,后跟6个数字)
-
但您将其存储到一个字符中?