file << "\r\n"; ohne ios::binary gibt eine 3 Byte große Datei
-
Hi,
wenn ich \r\n in eine Datei schreiben will und nicht ios::binary verwende, wird die Datei 3 Byte groß und nicht wie gewünscht 2 Byte groß.
std::ofstream file("output.txt"); file << "\r\n";
Muss man echt um \r\n in eine Datei zu schreiben das ios::binary Flag benutzen??
(Windows XP, Visual C++ 2003)
Mfg, Rajcer
-
im Textmodus wird unter Windows eben zu jedem \n ein \r hinzugefügt, da Windows aus mir unbekannten Gründen \r\n will, was ja ansonsten nicht C und C++ kompatibel wär. Deswegen gibt es ja einen Textmodus und einen Binärmodus.
-
Rajcer schrieb:
Muss man echt um \r\n in eine Datei zu schreiben das ios::binary Flag benutzen??
Tja, \n ist unter Windows im Textmodus nunmal \r\n - also 2 Byte.
Wenn du das nicht willst und das \r\n selber schreiben willst, musst du in den binärmodus wechseln.
-
Rajcer schrieb:
Muss man echt um \r\n in eine Datei zu schreiben das ios::binary Flag benutzen??
Ist das nicht der einzige Sinn des ios::binary-Flags?
-
operator void schrieb:
Rajcer schrieb:
Muss man echt um \r\n in eine Datei zu schreiben das ios::binary Flag benutzen??
Ist das nicht der einzige Sinn des ios::binary-Flags?
nein. der hauptsinn besteht darin, dass bei einem 0x00(also \0 zeichen) nicht streamende ist,sondern erst am ende der datei
-
falsch otze. loooool
-
otze schrieb:
der hauptsinn besteht darin, dass bei einem 0x00(also \0 zeichen) nicht streamende ist,sondern erst am ende der datei
Stand das in Delta Airlines In-Flight Magazine oder in Esoterik heute?
Ich kann im Standard gar keine derartige Aussage finden.
-
HumeSikkins schrieb:
Stand das in Delta Airlines In-Flight Magazine oder in Esoterik heute?
+scnr+