lesen aus einer datei
-
hallo....bin c-neuling und würde gerne wissen wie man aus einer datei einzelne zeichen lesen kann?!
-
hi,
der abauf geht ungefähr so:
fopen, getc, fclose.
da hast du schonmal die funktionsnamen mit denen das geht.
gruß,
b.n.
-
#include <stdio.h> #include <stdlib.h> int main(void) { FILE *f = fopen("dateiname.txt", "r"); if (!f) { perror("fopen"); exit(EXIT_FAILURE); } int c = fgetc(f); if (c >= 0) printf("Gelesenes einzelnes Zeichen: %c\n", c); else printf("Nichts zu lesen\n"); fclose(f); return 0; }
-
erst mal vielen dank...das läuft alles schon sehr gut,aber wie kann ich nich nur ein zeichen auslesen sondern alle,aber halt einzeln?!
-
int c; while(c = fgetc(f)) printf("Gelesenes einzelnes Zeichen: %c\n", c);
Gut Schuß
VuuRWerK
-
int c; while(c = fgetc(f)) printf("Gelesenes einzelnes Zeichen: %c\n", c);
sorry,aber weiß nich genau wo ich das hinpacken soll bzw kann mir wer vielleicht genauer erklären was da gemacht wird?!
-
Hallo
int c; while(c = fgetc(f)) printf("Gelesenes einzelnes Zeichen: %c\n", c);
http://www.cplusplus.com/reference/clibrary/cstdio/fgetc.html
way
-
hmm...bringt mich auch irgendwie nich weiter....könnte mir bitte nich einer nochmal den gesamten code kopieren...
-
VuuRWerK schrieb:
while(c = fgetc(f))
Das funktioniert nur, wenn die Datei mit einem Nullbyte endet, womit im Allgemeinen nicht zu rechnen ist.
fgetc() liefert einen negativen Wert (genauergesagt: EOF), wenn die Datei zuende ist. Also besser:
#include <stdio.h> #include <stdlib.h> int main(void) { FILE *f = fopen("dateiname.txt", "r"); if (!f) { perror("fopen"); exit(EXIT_FAILURE); } int c; while (c = fgetc(f), c != EOF) printf("Gelesenes einzelnes Zeichen: %c\n", c); fclose(f); return 0; }
Genaugenommern wird EOF nicht nur bei Dateiende, sondern auch bei einem Fehler geliefert. Was davon der Fall war, kann man mit feof() oder ferror() herausfinden.
Edit: Kompletter Code auf besonderen Wunsch
-
Hi,
bastianno014 schrieb:
erst mal vielen dank...das läuft alles schon sehr gut,aber wie kann ich nich nur ein zeichen auslesen sondern alle,aber halt einzeln?!
also wennste noch nicht mal Schleifen kennst, sollteste erst mal die Grundlagen lernen und nicht nicht gleich mit Datei schreiben/lesen anfangen.
Und wennste die Funktionsweise einer Funktion aus dem C-Std nicht kennste, einfach danach, mit der Suchmachine deiner Wahl, suchen ;).Gruessli C0de4Fun