繁体   English   中英

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

[英]“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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM