#include<stdio.h>
#define SIZE 1
typedef struct
{
float num;
float age;
}student;
student stu[SIZE];
void save()
{
FILE *fp;
int i;
if((fp=fopen("dat.txt","w"))==NULL)
{
printf("无法打开此文件!\n");
return;
}
for(i=0;i<SIZE;i++)
if(fwrite(&stu[i], sizeof(student), 1, fp) != 1)
printf("文件写入错误。!\n");
fclose(fp);
}
void main()
{
int i;
for(i=0;i<SIZE;i++)
scanf("%f%f",&stu[i].num,&stu[i].age);
save();
}
你可以按
F5
調試,在彈框的時候點重試,會跳到發生異常的點,左邊會有個箭頭標出是哪行造成的錯誤。按這裡提供的信息,至少有一處肯定是錯的:
要改成:
在
Windows
下讀寫二進位的文件,開啟方式必須指定 "b" 參數,不然即使不發生執行時期異常,出來的文件資料也不對。if(fwrite(&stu[i], sizeof(student), 1, fp) != 1)
應為
if(fwrite(stu[i], sizeof(student), 1, fp ) != 1)
~~就上面的程式碼來看,你的VC6有問題,你試試換個機器就能測試通過