Datensegmente - Dateisätze aus der Datei auslesen...
-
Was wird da in der Mitte wo die while ist gemacht??
while (!feof(db)) { fscanf(db,"%d %s %s %s", &person[count].id,person[count].vorname, person[count].name,person[count].zeit ); count++; }
Da wird ja alles ausgegeben, aber wie kann man es so machen das man z.B. eine id angibt und dann raussucht mit der entsprechende Zahl..
da wird nichts ausgegeben. da werden die daten von deine datei in das struct eingelesen. danach kannst du dort suchen nach id, name etc.
-
Wenn ich jetzt was in die .txt Datei reinschreibe, kommt ein Speicherror, wurde geschlossen wegen Fehler in der Anwendung
int count = 0; struct data_log { int id; char user_name[100]; int pass_word; }; struct data_log dialog[100]; FILE *db; if (db = fopen("usr_data.txt", "r")) { // while (!feof(db)) { fscanf(db,"%d %s %i", dialog[count].id,dialog[count].user_name, dialog[count].pass_word); count++; } printf("\nID: %d", dialog[0].id); printf("\nUsername: %s", dialog[0].user_name); printf("\nPassword: %i", dialog[0].pass_word); printf("\nID: %d", dialog[1].id); printf("\nUsername: %s", dialog[1].user_name); printf("\nPassword: %i\n", dialog[1].pass_word); /// } else { printf("\n\nno\n"); } fclose(db);
In der usr_data.txt
1 Rene1 123451 2 Rene2 123452
// Edit
Er hat was gegen fscanf, ich glob es hängt an den [] bei id...
-
Spielgrips schrieb:
Wenn ich jetzt was in die .txt Datei reinschreibe, kommt ein Speicherror, wurde geschlossen wegen Fehler in der Anwendung
int count = 0; struct data_log { int id; char user_name[100]; int pass_word; }; struct data_log dialog[100]; FILE *db; if (db = fopen("usr_data.txt", "r")) { // while (!feof(db)) { fscanf(db,"%d %s %i", dialog[count].id,dialog[count].user_name, dialog[count].pass_word); count++; } printf("\nID: %d", dialog[0].id); printf("\nUsername: %s", dialog[0].user_name); printf("\nPassword: %i", dialog[0].pass_word); printf("\nID: %d", dialog[1].id); printf("\nUsername: %s", dialog[1].user_name); printf("\nPassword: %i\n", dialog[1].pass_word); /// } else { printf("\n\nno\n"); } fclose(db);
In der usr_data.txt
1 Rene1 123451 2 Rene2 123452
// Edit
Er hat was gegen fscanf, ich glob es hängt an den [] bei id...
vielleicht weil du die Datei im "r"ead-Modus öffnest.
-
eigentlich geht das mit jeden Modus, er ließt nur ein "readen" und w ist fast das gleiche, nur das er lesen und schreiben kann und fscanf muss ja nur lesen..
-
Spielgrips schrieb:
eigentlich geht das mit jeden Modus, er ließt nur ein "readen" und w ist fast das gleiche, nur das er lesen und schreiben kann und fscanf muss ja nur lesen..
Kansst du dein Problem etw. genauer beschreiben?
-
Spielgrips schrieb:
eigentlich geht das mit jeden Modus, er ließt nur ein "readen" und w ist fast das gleiche, nur das er lesen und schreiben kann und fscanf muss ja nur lesen..
r = read = lesen = LESEN
w = write = schreiben = SCHREIBENmit "r" öffnen und dann mit printf zu schreiben zu versuchen geht schief, ist halt so...
Nach der Einlese schleife musst Du schliessen und dann erneut öffnen, aber dann halt zum schreiben!
-
Hallo,
fscanf erwartet als Argumente Zeiger auf Variablen:
fscanf(db,"%d %s %i", &dialog[count].id, dialog[count].user_name, &dialog[count].pass_word);
MfG
-
@NobbZ
Aha, ich wusste gar nicht, dass für die Ausgabe am Bildschirm (printf()) eine Datei im Schreibemodus öffnen mussIst mir neu. Also bei mir hat das bisher immer ohne Datei hingehauen, dass ich mit printf() einfach den Bildschirm was ausgeben konnte. :p
-
AJ schrieb:
@NobbZ
Aha, ich wusste gar nicht, dass für die Ausgabe am Bildschirm (printf()) eine Datei im Schreibemodus öffnen mussIst mir neu. Also bei mir hat das bisher immer ohne Datei hingehauen, dass ich mit printf() einfach den Bildschirm was ausgeben konnte. :p
printf schreibt ja standardmäßig in das stdout = fprintf(stdout, "...");
stdout gehört zu den filedeskriptoren, die bereits geöffnet sind.
printf könnte also auch als Makro definiert sein wie getchar();
-
Wie soll jetzt das nun aussehen,
Eins was mich irgendwie wundert das der Compiler und Linker nix sagt und dann wenn man es ausführt hat man die Bescherung...
Wenn ich mich recht erinnere sind die printfs außerhalb von der while, nicht irritiert fühlen
!
ich glob es hängt an die & in fscanf weil eins keins hat, ich probiere mal aus Freunde ;)!
-
Okay es geht
, danke an allle
!!
-
Ich geb mich geschlagen... Ich hab nur:
Wenn ich jetzt was in die .txt Datei reinschreibe, kommt ein Speicherror, wurde geschlossen wegen Fehler in der Anwendung
gelesen und halt das open im read modus,weiter hab ich dann gar nicht geguckt...
-
@ghost
-
AJ schrieb:
@ghost
Sorry, hatte die Ironie in deinem Beitrag nicht ganz mitbekommen.
Hey: was sind das denn für Hyroglyphen: λ ω∫
irgendwie cool: Hλlf Life
-
@ghost
Sorry, hatte die Ironie in deinem Beitrag nicht ganz mitbekommen.
Macht nichts :).
...Hyroglyphen...
Lass es dir von MasterUser erklären
Aus Mathematik solltest du wenigstens ein paar der Zeichen kennen.
Ich frag mich grad wie man das Hλlf aussprechen soll, da das λ von der Lautschrift her, soviel ich weiß, ein L ist, also Hllf
-
Jetzt hast du meine Ironie nicht ganz mitbekommen.
-
Hätte ja sein können, dass du das wirklich nicht weißt. Bist ein überzeugender Schauspieler, zumindest was das Schreiben angeht ;):D