2015-09-22 97 views
0

,它将打印到屏幕“请输入字符:”,并允许我输入一个字符4次。之后没有任何反应,当我按下回车键时,出现“Segmentation fault(核心转储)”消息,我不知道为什么。如果任何人都可以提供帮助,那很好,谢谢!运行此程序时出现“分段错误(核心转储)”消息

#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

格式说明符'%s'是指定一个字符串。使用'%c'作为一个字符。 –

+0

几乎总是与-Wall选项编译仔细检查 –

回答

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

应该

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

%s用于扫描一个字符串,如果你要扫描的字符,然后使用%c,因为你是在你需要采取忽略照顾循环扫描非白人字符

+0

现在的作品完美,谢谢 – Michael

+0

@迈克尔没有probs .. – Gopi

1

我看到的问题:

您正在使用"%s",其中"%c"是必需的,无论是在致电scanf还是致电printf

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

+0

我试过%C之前只是没有用的空间,但我现在没有和它的工作!非常感谢 – Michael

相关问题