Problem beim Schreiben/Lesen von Dateien
-
Hallo,
ich habe hier einen Teil meines Problem-Quellcodes:#include <stdio.h> int main() { int i; char Stop[1]; int Datensaetze = 5; struct Datensatz { char Name[50]; char Vorname[50]; char Strassenname[50]; char Hausnummer[50]; char Postleitzahl[50]; char Ort[50]; char Telefonnummer[50]; } Datenbank[Datensaetze]; i = 0; FILE *Daten; Daten = fopen("Daten.txt","w"); if(Daten == NULL) { fprintf(stdout,"\n\n\tFehler beim öffnen der Datei\n\n"); } while(i < Datensaetze) { fprintf(stdout,"\nBitte geben Sie einen Namen an: "); fscanf(stdin,"%s",&Datenbank[i].Name[50]); fprintf(Daten,"%s ",Datenbank[i].Name); fprintf(stdout,"\nBitte geben Sie einen Vornamen an: "); fscanf(stdin,"%s",&Datenbank[i].Vorname[50]); fprintf(Daten,"%s ",Datenbank[i].Vorname); fprintf(stdout,"\nBitte geben Sie einen Strassennamen an: "); fscanf(stdin,"%s",&Datenbank[i].Strassenname[50]); fprintf(Daten,"%s ",Datenbank[i].Strassenname); fprintf(stdout,"\nBitte geben Sie Hausnummer an: "); fscanf(stdin,"%s",&Datenbank[i].Hausnummer[50]); fprintf(Daten,"%s ",Datenbank[i].Hausnummer); fprintf(stdout,"\nBitte geben Sie eine Postleitzahl an: "); fscanf(stdin,"%s",&Datenbank[i].Postleitzahl[50]); fprintf(Daten,"%s ",Datenbank[i].Postleitzahl); fprintf(stdout,"\nBitte geben Sie einen Ort an: "); fscanf(stdin,"%s",&Datenbank[i].Ort[50]); fprintf(Daten,"%s ",Datenbank[i].Ort); fprintf(stdout,"\nBitte geben Sie eine Telefonnummer an: "); fscanf(stdin,"%s",&Datenbank[i].Telefonnummer[50]); fprintf(Daten,"%s\n",Datenbank[i].Telefonnummer); fprintf(stdout,"\n\nWollen Sie einen weiteren Datensatz angeben? (J|N): "); fscanf(stdin,"%s",&Stop[0]); if(Stop[0] == 'N' || Stop[0] == 'n') { break; } ++i; } fclose(Daten); }
Code ist angepasst, normal nicht so trivial geschrieben.
Warum kommt beim Kompilieren(MinGW) z.B. sowas dabei raus:
ŒŽx= Name Nachname Str 1 plz Stadt
Es geht um den Teil vor Name.
Danke
-
... &Datenbank[i].Name[50] ...
Du erwartest nicht wirklich, dass du damit auf den Speicherbereich von Name schreibst, oder??
Bei fprintf() verwendest du deine Arrays richtig, bei fscanf() seltsamerweise nicht!
-
Danke, ist bzw. war das erste Mal das ich mit Strukturen gearbeitet hab.
-
Gast² schrieb:
Danke, ist bzw. war das erste Mal das ich mit Strukturen gearbeitet hab.
Naja, mit der Struktur hat das weniger zu tun. Die hast du ja richtig verwendet :).
-
AJ schrieb:
Gast² schrieb:
Danke, ist bzw. war das erste Mal das ich mit Strukturen gearbeitet hab.
Naja, mit der Struktur hat das weniger zu tun. Die hast du ja richtig verwendet :).
Richtig. Aber leider hab ich falsch drauf zugegriffen
Naja egal, das "Programm" läuft jetzt.
Danke nochmal