Datei Zeilenende !
-
Hi!
Ich bin gerade etwas am rumprobieren mit Dateioperationen!
Ich habe nur leider schon Probleme mit dem Zeilenweisen einlesen aus einer Datei!Dazu muss ich ja zuerst wissen wie lang die Zeile überhaupt ist, die ich einlesen möchte und da liegt auch das Problem!
Ich hab mir das ganz so gedacht, das ich in einer while Schleife solange Zeichen einlese bis ich auf ein "\n" treffe!
Doch ich bekomme das nicht hin und die Schleife kommt nie zum Abbruch obwohl nur ein Wort in der Datei steht!Git es da auch andere Möglichkeiten die Länge der Aktuellen Zeile zu ermitteln??
-
Thes-One schrieb:
Git es da auch andere Möglichkeiten die Länge der Aktuellen Zeile zu ermitteln??
nein. Eine Zeile hört beim \n auf. Du hast wahrscheinlich nur falsch auf \n überpüft (Code anzeigen).
Unter Linux gibt es ab der glibc 4.6.27 die Funktion getline.
-
Funktioniert jetzt auch --- teilweise----!
Man muss nur length -1 als Zeilenlänge nehmen!while (getc(file)!=EOF){ length++; }
-
damit ermittelst du aber nicht das Zeilenende sondern das Ende der Datei.
-
Yap, du hast recht!
Wie komme ich den auf das Zeilenende???
Statt EOF --- "\0"??Edit:
"/n" oder "\0" geht leider auch nicht!
-
int c,i=0,length=0; while ((c = getc(file)) != EOF){ if(c != '\n') length++; else { i++; printf("length of line #%d: %d\n", i, length); length = 0; } }
-
Oh, wie dämlich!
Ich hab die ganze Zeit "\n" probiert anstatt '\n'!THX
-
Thes-One schrieb:
Oh, wie dämlich!
Ich hab die ganze Zeit "\n" probiert anstatt '\n'!THX
du müsstest eigentlich schon lange verstanden haben, was der Unterschied zwischen "x" und 'x' ist, oder?
-
Ja den unterschied hab ich auch verstanden, aber den Fehler mach ich immer noch!
-
dann hast du es nicht verstanden
btw. man: fgets(3)