我正在用C編寫程序,並嘗試將結構數組保存到文件中。 我的意圖是初始化一個結構數組並將其保存到一個文件中。此外,我想修改struct-entry 1,struct-entry 2,struct-entry 3等的條目,但條目不會寫入文件。甚至似乎沒有任何結構的數組。在C中的文件結構數組中寫入條目C
我將不勝感激任何幫助,因爲我想不通,爲什麼數組沒有寫入文件。
謝謝 Threx
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct liste {
unsigned int code;
unsigned int activ;
};
int main()
{
int z;
printf("Enter Index: "); /* Data should fill the z-th entry in array of structures */
scanf("%d",&z);
FILE *mrp;
struct liste bauteil[5]; /* Array with 5 structs for 5 different entries */
mrp = fopen("aaa.txt","w+b");
printf("Number of entry is: %d\n",z);
printf("Enter code: ");
scanf("%d",&bauteil[z].code);
bauteil[z].activ=77777; /* activ entry contains 77777 */
fseek(mrp, z * sizeof(struct liste), SEEK_SET);
fwrite(&bauteil[],sizeof(bauteil),1,mrp);
fclose(mrp);
return 0;
}
是否該文件已經存在,你的程序開始前?或者你的程序應該在填寫條目時創建文件? – 2013-04-11 19:53:25
'fwrite(&bauteil [],sizeof(bauteil),1,mrp);'甚至沒有編譯。這是一個複製錯誤? (它應該是'fwrite(&bauteil [z],sizeof(bauteil),1,mrp);'要編譯,但實際大小參數應該是'sizeof bauteil [0]')。 – 2013-04-11 19:53:59
@Scott:在填充它之前應該存在該文件,並且稍後必須填寫/修改struct-entries(例如,使用bauteil [2] .code = 123)。 – Threx 2013-04-11 20:19:45