[英]“Segmentation fault (core dumped)” message appears
运行该程序时,它会打印到屏幕“请输入一个字符:”,并允许我输入4次字符。 在那之后什么都没有发生,当我按下回车键时,出现消息“分段错误(核心已转储)”,我不确定为什么。 如果有人可以帮助,那就太好了,谢谢!
#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]);
}
}
scanf("%s", &a[i]);
应该
scanf(" %c", &a[i]);
%s
用于扫描字符串,如果要扫描字符,请使用%c
因为要循环扫描,因此需要注意忽略非白字符
我看到的问题:
在对scanf
的调用和对printf
的调用中,都在使用需要"%c"
"%s"
。
对于scanf
,请使用" %c"
以便跳过非空白字符。
对于printf
,只需使用"%c"
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.