Probleme beim Zeilen zählen
-
Ich versuche so die Zeilen zu Zählen:
f = fopen ("test.txt","r"); while (fgets(a,sizeof(a),f) != 0) { zaehler = zaehler + 1; }Die Datei hat mehr als 12 Zeilen.
Wenn ich aber den Wert von "zaehler" ausgebe zeigt er mir immer 4 an.
Was ist den bitteschön an diesem Code verkehrt?
-
was ist denn 'a'?
füg doch mal in die schleife ein puts(a); ein

-
char a[500];Wo genau soll ich den puts(a); einsetzen un d was bezweckt puts?
-
hehe schrieb:
char a[500];Wo genau soll ich den puts(a); einsetzen un d was bezweckt puts?
ein puts in der schleife zeigt dir die soeben eingelesene zeile an.
übrigens: teste am schluss mit feof und/oder ferror den zustand des FILE*

-
Bist du dir auch sicher, das jede Zeile nur 500 Zeichen hat? ( Wär eigentlich komisch wenn es überhaupt so weit käme.. )
Mach's am besten mit Zeichen. Lies ein Zeichen nach dem anderen, und wenn es eine neue Zeile ( iChar == '\n' ) gibt, dann incrementierst du deine Variable um eine Zeile.
-
Nimm den, der bringt's

#include <string.h> #include <stdio.h> int main(void) { int i = 0; FILE *fp; char file[512]; char line[4096]; printf("Input full Path: "); fgets(file, sizeof(file) - 1, stdin); file[strlen(file) - 1] = '\0'; fp = fopen(file, "r"); if(!fp) { return 1; } while(fgets(line, sizeof(line) - 1, fp)) { ++i; } printf("Lines counted: %d", i); getchar(); return 0; }
-
Hi
char line[4096]; //<< kann man das auch dynamisch machen, weil statisch nervt es doch, das könnte evtl. ne bof werdenich schätze durchzählen (zeichenweise) und dann via malloc speicher reservieren?
Was heisst eigentlich 'referenzieren' ' dereferenzieren' das ist für mich nicht verständlich. danke
gruss susi sorglos!