Ich habe den folgenden Code:Wie kann ich zwei verschiedene Datentypen aus Binärdatei in C lesen?
typedef struct{
int user_id;
char username[100];
char password[25];
} User;
int id = 10001;
User array[50];
...
Und dann der wichtige Teil, der (Schreiben und Lesen) hat versagt:
FILE *f = fopen("users.dat", "w");
User aux;
int j = 0;
for(int i = 0; i < 50; i++){
fwrite(&array[i],sizeof(array[i]),1 , f);
}
fwrite(&id, sizeof(id), 1, f);
fclose(f);
f = fopen("users.dat,"r");
while(fread(&aux, sizeof(aux), 1, f)){
array[j++] = aux;
}
fread(&id, sizeof(id),1 ,f);
Kann mir jemand erklären, warum das nicht funktioniert? AKA, warum es den ganzen Benutzer liest, aber es liest nicht die Identifikation. Ich habe versucht, einen int zu haben, der die Anzahl der Benutzer zählt und nur diese druckt, aber es hat nicht so gut funktioniert. Vielen Dank für die Hilfe und ich werde mehr Code bei Bedarf posten.
Was funktioniert nicht? Was wird in die Datei geschrieben? –
Ist das der eigentliche Code, den Sie versuchen? Sie haben eine Datei 'f' zum Lesen geöffnet. Womit du dann schreibst. Zwischen Lesen und Wiedereröffnung? Stelle sicher, dass du dich zum Schreiben öffnest, um mit – doctorlove
zu beginnen. Nun, ich schaffe es, alle 50 Benutzer zu lesen, aber das Lesen der int ID gibt 0 zurück (nicht gelesen). –