2016-12-01 2 views
0

Ich erstelle ein Programm, das den Inhalt einer Textdatei über die Befehlszeile Zeichen für Zeichen einliest.NULL Terminator in Textdateien

Ist der NULL-Wert automatisch eingefügt oder muss ich ihn manuell zur Textdatei hinzufügen?

+0

Anstelle von NULL können Sie einfach EOF verwenden, was bedeutet, dass das Dateiende automatisch eingefügt wird. [http://stackoverflow.com/questions/1782080/what-is-eof-in-the-c-programming-language] – klancar16

+0

'NULL' ist ein Makro mit einer _null-Zeiger-Konstante_. In Textdateien gibt es kein 'NULL'-Zeichen oder eine Null-Zeiger-Konstante. Es ist nicht klar, was du meinst. Bitte sehen Sie [ask] und fügen Sie Ihrer Frage weitere Informationen hinzu, einschließlich des betreffenden Codes. – Olaf

Antwort

1

Text Dateien brauchen keinen Terminator auf modernen Plattformen. (Auf einigen Legacy-Plattformen hatten sie eine, aber ich bezweifle, dass dies hier der Fall ist.) Sie sollten fast sicher keinen Terminator in die Datei schreiben, da dies Probleme mit Programmen verursachen könnte, die keine erwarten. Das Dateiende dient als Abschluss beim Lesen.

Text Strings in C ist Arrays durch eine Null, auch bekannt als die Null-Zeichen, mnemonic NUL-Zeichen (mit einem L, und es ist nicht dasselbe wie NULL in C ist). Wenn Sie Zeichenfolgen erstellen, müssen Sie sie ordnungsgemäß beenden. Funktionen, die Strings zurückgeben, einschließlich derjenigen, die sie aus Dateien lesen (z. B. fgets), beenden sie für Sie.

+0

@Norman, dass Legacy-Terminator * in der Textdatei * nicht 'NULL' war, sondern zum Beispiel' Strg-Z' oder '0x1A'. –

+0

@WeatherVane Ja, ich weiß, deshalb habe ich keinen Null-Terminator angegeben, sondern einfach "einen Terminator". Wie auch immer, ich denke nicht, dass es für die Frage relevant ist, nur ein paar Kleinigkeiten. =) – Arkku

+0

Entschuldigung Bemerkung war OP wer fragte "ist NULL-Wert automatisch eingefügt oder muss ich es manuell in die Textdatei hinzufügen", also vielleicht relevant für die Frage. –