我用fputs函数将数据存入了文件,为什么用fgets读取的时候系统就直接崩溃了,在c中。请高人指教

void su()
{
extern int m;/*参赛学校总数*/
FILE *filep;
FILE *fp1;
FILE *fp2;
int i;
extern int n; /*男子竞赛项目数*/
extern int b; /*女子竞赛项目数*/
char ma[1000]; /*男项目*/
char nvm[1000]; /*女项目*/
char sc[1000];
printf("请输入参赛学校总数(小于100):");
scanf("%d",&m);
printf("请输入男子项目总数:");
scanf("%d",&n);
printf("请输入女子项目总数:");
scanf("%d",&b);
printf("请输入所有参赛学校的名称\n");
for(i=0;i<m;i++)
scanf("%s",&sc[i]);
printf("请输入所有男子竞赛项目名称\n");
for(i=0;i<n;i++)
scanf("%s",&ma[i]);
printf("请输入所有女子竞赛项目名称\n");
for(i=0;i<b;i++)
scanf("%s",&nvm[i]);
filep=fopen("lj1.txt","w");
fputs(ma,filep);
fclose(filep);
fp1=fopen("lj2.txt","w");
fputs(sc,fp1);
fclose(fp1);
fp2=fopen("lj3.txt","w");
fputs(nvm,fp2);

fclose(fp2);
}
下面是读取的代码case 1:{ fp1=fopen("lj2.txt","r");
fgets(sc,4*m,fp1);
for(i=0;i<m;i++)
{
printf(" ");
printf("%s",sc[i]);
}
fclose(fp1);
break;}

if (pFile == NULL) perror ("Error opening file"); //应该学会使用这样的格式来查错
else { fgets (sc , 4*m , pFile);
puts (sc); //加上这一句试一试,看看问题是不是在这里
fclose (pFile);
还有就是你想过没,在case当中使用一个初始化过的sc,如果sc当中已经有东西那就会有问题的。另外就是你应该在文件的谢部分就进行查错的,而不是到读取部分出现问题才去考虑错误
温馨提示:答案为网友推荐,仅供参考
相似回答