問題。我寫了數據存放到文本,保存後。再次增加數據進去就出現問題。
1.一開始存入兩個學生數據。沒出錯
2.當我再往裡面添加1個學生信息
3.我次運行程序都會先刷新一下,增加數據都會保存。
void shuaxin() //刷新學生信息函數
{
FILE *fp;
int i=0; //記錄學生人數
if((fp=fopen("student.txt","r"))==NULL)
{
printf("文件刷新失敗\n");
exit(0);
}
while(fscanf(fp,"%s %s %s%f%f%f%f",stu[i].num,stu[i].name,stu[i].time,&stu[i].score[0],&stu[i].score[1],
&stu[i].score[2],&stu[i].sum)==7)
i++;
fclose(fp);
n=i; //n是學生總人數
printf("………………………………………%d位學生信息刷新錄入完畢………………………………\n",n);
system("pause");
}
void baocun() //保存學生信息函數
{
FILE *fp;
int i=0; //錄入學生人數
if((fp=fopen("student.txt","w"))==NULL)
{
printf("文件保存失敗\n");
exit(0);
}
for(i=0;i<n;i++)
{
fprintf(fp,"%s %s %s %.2f %.2f %.2f %.2f",stu[i].num,stu[i].name,stu[i].time,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].sum);
fputs("\n",fp);
}
fclose(fp);
printf("………………………………一共有%d個學生信息已經保存……………………\n",n);
}
出題出現在哪裡?
你重發一下代碼,用選項裡的“插入代碼片”括起來,這樣代碼看不到,就是這個圖標:“</>”