运行此程序时,它会打印到屏幕“请输入一个字符:”并允许我输入一个字符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]);
}
}
答案 0 :(得分:1)
scanf("%s", &a[i]);
应该是
scanf(" %c", &a[i]);
%s
用于扫描字符串,如果要扫描字符然后使用%c
,因为您正在循环扫描,需要注意忽略非whitepsace字符
答案 1 :(得分:1)
我看到的问题:
您在使用"%s"
时需要"%c"
,scanf
和printf
来电。
对于scanf
,请使用" %c"
以便跳过非空白字符。
对于printf
,只需使用"%c"
。