Ende der Zeile-Zeichen / Carriage return
Lese ich eine normale text-Datei und schreiben Sie alle Wörter als zahlen, die auf einen anderen text. Wenn eine Zeile endet es sieht für einen "neue-Zeile-Zeichen (\n)" und weiter aus der die neue Zeile. In Ubuntu führt er perfekt, aber in Windows (DevC++), kann es nicht funktionieren, die Funktion. Mein problem ist der text im Fenster, die ich gelesen habe keine neue-Zeile-Zeichen. Auch lege ich neue Zeilen von meiner hand, mein Programm kann es nicht sehen. Wenn ich drucken möchte, das Zeichen am Ende der Zeile, es sagt, es ist ein Leerzeichen (ascii = 32) und ich bin sur, die ich am Ende der Zeile. Hier ist mein end-of-line-control-code, was kann ich tun, um es zu beheben? Und lese ich über einen Charakter namens "carriage return (\r)", aber es behebt nicht mein problem.
c = fgetc(fp);
printf("%d", c);
fseek(fp, -1, SEEK_SET);
if(c == '\n' || c == '\r')
fprintf(fp3, "%c%c", '\r', '\n');
- Die windows-line seperator ist "\r\n".
- Wie kann ich erwähnen, zusammen in der if-Anweisung weiß ich es nicht, wie '\r\n' ) @ElliottFrisch
- Das problem ist, dass Windows nicht verwenden ein einzelnes Zeichen am Ende der Zeile. Es verwendet zwei. Zuerst ein carriage return ('\r'), dann eine neue Zeile ('\n'). Alte Versionen von Mac (z.B. pre-X) verwendet '\r' allein.
\r\n
war, was Sie tatsächlich an terminals und Drucker, um eine neue Zeile; immer noch ist, zum terminal/Konsole-Emulatoren. Es gibt keine ASCII-newline,\n
übersetzt ASCII LF, Zeilenvorschub ohne Wagenrücklauf; seine interpretation als Zeilenumbruch auf unix, ist ganz konventionell.- Verwandte: stackoverflow.com/questions/1279779/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie öffnen eine Textdatei und möchten newline-Konvertierungen stattfinden, öffnen Sie die Datei in
"r"
- Modus statt"rb"
diese öffnet sich in text-Modus anstelle von Binär-Modus, das ist, was Sie wollen, für text-Dateien. Auf linux gibt es nicht als einen Unterschied, aber auf windows
\r\n
übersetzt wird\n
Eine mögliche Lösung, so scheint es, um die zahlen zu Lesen aus der Datei in eine
int
variable direkt.es sei denn, der Zeilenumbruch bedeutet etwas wichtiges für Sie.
\n
Es gibt ein paar Fragen hier
Was ist der Unterschied zwischen windows text newline-und unix-text newline?
UNIX-newline LF ist nur. ASCII-code 0x0a.
Der Windows-Zeilenumbruch CR + LF. ASCII-code 0x0d und 0x0a
Macht Ihrer Datei haben, LF oder CR ?
Verwenden Sie einen hex-editor, um den Inhalt der Datei. Ich benutze xxd auf linux.