nur jede zweite zeile wird gelesen...
-
nochmal zum mitmeiseln.. fgetc gibt einen integer zurück.. aber fgets nicht...
ich will die line auf den inhalt checken.. quasi zeilenweise filtern...
-
Ich habe hier keine Zeit zu lesen was auf dem Bildschirm steht, scheint deine Devise zu sein
Schau dir doch mal das posting vor deiner flame an.
und wo willst du zeilenweise filtern?
1 - nach dem fgets.
2 - wenn fgets einen Fehler feststellt ist der returnwert 0 und der inhalt von line ungeändert
3 - wenn Inhalt ungeändert und noch mal gefiltert wird diese Zeile nochmals ausgewertet
4 - wenn die Abbruchbedingung der Schleife nicht stimmt, bricht die Schleife nicht ab
5- wenn die Schleife nicht abbricht wird fgets ausgeführt und schon sind wir wieder bei 2
-
ich kann lesen und ich ich LESE auch.. habe auch alle vorgeschlagenen varianten gecheckt... problem ist erst steigt nicht aus abwohl er längst den wert 0 haben müsste..
is auch egal
-
mach mal nach dem fgets ein simples
printf("%s\n",line);
damit du siehst was du gelesen hast.
Ich hatte vorhin schon mal gesagt die 20 Zeichen kommen mir komisch vor.
Was für eine Datei liest du und wie sieht die aus. Ist da wirklich jede Zeile 20 Zeichen lang oder sind die Zeilen vielleicht länger.??
Wenn die Zeilen länger als 20 zeichen sind würde es genau zu diesem Effekt führen, denn fgets liest bis zu einem Newline oder maximal n (20) Zeichen. Beim nächsten lesen fängt es genau an der Stelle im File an an der es vorher das Lesen beendet hat
Das diese Lösung nicht funktioniert würde mich wundern
while (NULL!=fgets(line,LEN,g) { // ...... hier deinen Code };
Sie ist aus diesem Forum und auch länger diskutiert worden. Ich hab sie dann übernommen und in mehreren
Projekten erfolgreich eingesetzt. Sie wir bei uns in der Firma als Template für File lesen benutzt.Viel Spaß
-
Wie gesagt, USE GOOGLE!
Frage mich manchmal wieso man darauf eigentlich verweißt und es doch keiner nutzt? Vielleicht sollte man mal über dem Forum riesen groß google hinschreiben und schreiben wie man die beste Treffermöglichkeit bekommt, diese bekommt man in dem man wenig Suchbegriffe eingibt und in Anführungszeichen setzt, dazu bei mehr als einem Suchbegriff immer ein + vor jedem weitern Stichwort. Und...gibt es kein Beispiel in der ANSI C - FAQ? Würde mich irgendwie schon wundern. Hätte ich jetzt das Kylix3-Buch von einem Chef hier, dann könnte ich mal reingucken, weil dort das File-Handling in C++ auch mit dem C-File-Handling gemacht wird, wenn ich das recht in Erinnerung habe.Naja, ich würde sagen geh mal zu google...da wirste schon was finden!
EDIT:
@PAD:
Sehe gerade du sagtest fgets liest an der stelle weiter wo es aufgehört hat, macht cin.getline dies auch?@luiggi:
Guck mal hier:
http://www.resourcecode.de/showtopic.php?threadid=1017
http://www.c-plus-plus-archiv.de/forum/show.ca/message/6439/
und ansonsten such selbst weiter, hier:
http://www.google.de/search?q="C"+%2B"Datei+auslesen"&hl=de&lr=&ie=UTF-8&oe=UTF-8&start=0&sa=NCode-Hacker
-
@Code-Hacker passe, so firm bin ich in C++ leider noch nicht.
Im übrigen verweise ich auf:
http://www.c-plusplus.net/forum/viewtopic.php?p=361357
-
@PAD:
Axso, dann google ich jetzt mal
Und wieso verweißt du auf den anderen Thread von luiggi? Willst du damit andeuten er soll warten bis ihm dort jemand die lösung posten kann?Habe eben nochmal meinen Beitrag editiert, da sind jetzt 3 Links drin, wenn die luiggi nicht weiterhelfen, dann weiß ich auch nicht weiter. Davon mal abgesehen das ich mir mittlerweile sowieso angewöhnt habe nicht mehr nach Codes zu fragen sondern selbst zu suchen, also mehr Ehrgeiz zu entwickeln, dabei lernt man oft noch dazu.
Hier kannste auch nochmal gucken luiggi:
http://www.google.de/search?hl=de&ie=UTF-8&oe=UTF-8&q="C"+%2B"EOF"&meta=Es gibt noch so viele Möglichkeiten nach denen du suchen könntest und ich könnte sie dir auch sagen, aber ein bißchen musst du schon selbst machen....
Code-Hacker
-
@Code-Hacker der link war eher für dich gedacht, mit dem bezug auf meine allerletztes Posting in diesem Thread. In dem Posting ist die letzte Zeile von interesse.
-
Viele Wege führen nach Rom...
ich hab ne supi lösung..
fstream g; char line[1000]; g.open("c:/test.txt",ios::in); while(!g.eof()) { g.read(line,sizeof(line)-1); .... }
Da stellt sich gleich die nächste Frage...
wie kann ich char line[1000] zwischendurch mal leeren???
-
PAD schrieb:
@Code-Hacker der link war eher für dich gedacht, mit dem bezug auf meine allerletztes Posting in diesem Thread. In dem Posting ist die letzte Zeile von interesse.
Ich weiß, deswegen wollte ich ja wissen wieso du darauf hin verweißt.
Code-Hacker
-
@Code-Hacker hab ab und zu mal lLdD lange Leitung dünner Draht