出现“分段故障(核心转储)”消息

时间:2015-09-22 04:58:21

标签: c

运行此程序时,它会打印到屏幕“请输入一个字符:”并允许我输入一个字符4次。之后没有任何反应,当我按下Enter键时,出现“Segmentation fault(core dumped)”消息,我不知道为什么。如果有人能提供帮助那就太棒了,谢谢!

#include <stdio.h>

void main(){
char a[5];
int i;

for (i=0; i<4; i++){
printf("Please enter a character: ");
scanf("%s", &a[i]);
}

for (i=0; i<4; i++){
printf("%s", a[i]);
}
}

2 个答案:

答案 0 :(得分:1)

scanf("%s", &a[i]);

应该是

scanf(" %c", &a[i]);

%s用于扫描字符串,如果要扫描字符然后使用%c,因为您正在循环扫描,需要注意忽略非whitepsace字符

答案 1 :(得分:1)

我看到的问题:

您在使用"%s"时需要"%c"scanfprintf来电。

对于scanf,请使用" %c"以便跳过非空白字符。

对于printf,只需使用"%c"