我試圖更新C中的一個隨機訪問文件的記錄。我只需要更新我的.dat文件的每個記錄中的整數cant_discos。更新文件記錄
這是我寫的代碼,我有2個問題:
1)我的代碼只是讓我修改文件的第一條記錄。
2)程序不更新記錄。
typedef struct{
int codigo;
char nombre[30];
char integrantes[100];
int cant_discos;
} t_bandas;
int main()
{
int res,cant;
t_bandas aux;
FILE * fd;
fd=fopen("bandas.dat","rb+");
if(fd==NULL){ puts("ERROR"); exit(-1)}
while(!feof(fd)){
res=fread(&aux,sizeof(t_bandas),1,fd);
if(res!=0){
printf("New cant value..\n");
scanf("%d",&cant);
aux.cant_discos=cant;
fwrite(&aux,sizeof(t_bandas),1,fd);
}
}
fclose(fd);
return 0; }
發佈代碼時,一致的可讀縮進將使您的問題更具可讀性。在發佈代碼之前檢查預覽(如果看起來不太好,則在之後編輯)。 – crashmstr