为什么会出现段错误
#include <stdio.h>int main()
{
typedef struct{
char name;
int NO;
int score;
}STU;
STU a;
printf("请依次输入5个学生的姓名、学号、成绩\n");
int i;
for(i=0;i<5;i++)
scanf("%s,%d,%d",&a.name,&a.NO,&a.score);
FILE *fp;
fp=fopen("file.dat","rb+");
for(i=0;i<5;i++)
fwrite(&a,18,5,fp);
fclose(fp);
}
这段代码能正常通过编译,可是在输入数据的时候,每次输到第二个学生的成绩是就会报错,提示段错误,程序就会异常退出,求大神帮忙{:5_92:} 因为你的输入的格式控制字符串写错
注意不是输入的数据错了
是你的格式控制字符串写错了
%s 后面不能写,
因为这个,是%s的狩猎范围
你输入
1,1,1
会被当成一个%s的获取数据
全部写入到name里面
后面就全部错位了
不要用逗号分隔
直接空格分隔不是很好么
页:
[1]