Seltsames Verhalten mit ofstream
-
Hallo!
Kann mir jemand dieses Verhalten erklären?
In der Datei steht FF FF FF FF, dann lasse ich dieses Programm laufen:
ofstream file("E:\\test1.dat", ios::binary || ios::ate); file.seekp(4); size_t pos = file.tellp(); int val = 1; // Seltsames Verhalten mit val = 10 ??? file.write((char*)&val, 4); size_t pos2 = file.tellp(); cout << "WRITTEN: " << (pos2 - pos) << endl; file.close();
Ausgabe: WRITTEN: 4
Datei: FF FF FF FF 01 00 00 00Also wie erwartet.
Nun dasselbe von vorn, nur mit int val = 10 (erwarte FF FF FF FF 0A 00 00 00).
Aber nein:Ausgabe: WRITTEN: 5
Datei: FF FF FF FF 0D 0A 00 00 00Was ist denn da los
-
OM...G...
Leiwand schrieb:
ios::binary || ios::ate)
-
BTW: close() am Ende ist überflüssig und ein int muss nicht zwingend 4 Bytes groß sein.