0
typedef struct
{
char*title;
char* year;
char* length; //in minutes
} record;
void write(record* list[])
{
FILE* out=fopen("output.bin","a");
if(!out)
{
printf("error"); exit(1);
}else
{
int i;
for (i = 0; i < 1024; i++)
{
if(list[i]!=NULL)
fwrite(list[i], sizeof(record), 1, out);
}
fclose(out);
}
}
void read_back()
{
FILE* input=fopen("output.bin","r");
if(!input)
{
printf("error"); exit(1);
}else
{
record* temp[1024];
fread(temp,sizeof(record)*1024,1,input);
fclose(input);
}
}
如何使用fread讀取二進制文件?任何人都可以檢查我是否正確使用fwrite?我想我的read_back方法打印結構中的內容(標題,年份等)。如何使用fread讀取二進制文件?
在你的'read_back'函數中,你必須使用'malloc'函數爲每條記錄分配內存空間。順便說一句,你可能應該打開「w」(寫)而不是「a」(追加)。在某些環境中(例如Windows),您需要使用「rb」和「wb」而不是「r」和「w」來打開二進制文件。 –