Wie zu erkennen, eine neue Zeile von jeder Datei mit C-Programm
Ich bin beim Lesen einer Datei von ganzen zahlen. Ich will speichern ganze zahlen aus jeder Zeile, um ein neues array. Für diese möchte ich zu erkennen, dass eine neue Zeile einer Datei. Wenn jemand weiß, bitte helfen.
Die Datei zu Lesen, ist wie folgt
1 2 4 5 6
7 3 2 5
8 3
9 7 6 2
Gut, was haben Sie bisher? Wissen Sie, wie Sie eine Datei öffnen und Lesen zu können? Wissen Sie, wie Sie Lesen eine Zeile zu einem Zeitpunkt?
fgets()
liest Linien aus dem input-stream. Verwenden Sie es, und sscanf()
.InformationsquelleAutor Sanket Lad | 2011-04-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich bekomme keine segmentation fault Bitte beachten Sie, dass die Linie ist begrenzt auf 1024. Dies ist der Beispiel-code , können Sie weiter auszubauen.
Ich habe die Zeile weniger als 4 oder 5 ganze zahlen...
InformationsquelleAutor Avinash
Warum nicht
fgets()
um eine Zeile zu einem Zeitpunkt aus der Datei? Sie können dann mitsscanf()
stattfscanf()
zum extrahieren der zahlen.InformationsquelleAutor Oliver Charlesworth
Verwenden
fgets()
zu Lesen, eine einzelne Zeile zu einem Zeitpunkt. Dann nutzen Siestrtol()
zu analysieren, aus einer integer-Zahl, mit dem "Ende" pointer " - Funktion, um herauszufinden, wo, um erneut zu versuchen, und Schleife, bis Sie haben analysiert alle Werte.InformationsquelleAutor unwind
Mit
getc()
für diese Aktion ist gut, aber vergessen Sie nicht, dassgetc()
gibt Typ int. Erneut ein char "arbeitet" aber Sie haben ein problem mit nicht-strikten-ASCII-input-Datei, weilEOF = -1 = 0xFF
nach erneut zu char (auf den meisten C-Compiler), d.h.0xFF
Zeichen erkannt werden, daEOF
.InformationsquelleAutor radioing
Ich nicht sicher bin ob der int to char und Umgekehrt Konvertierung, aber das Programm funktioniert für nicht-null-zahlen. Ich habe versucht, auf visual basic.
InformationsquelleAutor Priyanka Avhad
Wenn Sie mit dem Lesen von char zu char dann erkennen Leerzeichen mit '32' und 'enter' '13' und/oder '10'
InformationsquelleAutor Reza