Given the following code:
std::ofstream stream(\"somefile\");
if (!stream)
{
return 1;
}
When invoking .write(....) and using
When I run your code on windows using g++
and libstdc++
, i get the following result:
expect: 32
file size: 33
So the problem is not compiler specific, but rather OS specific.
While C++ uses a single character \n
to represent a line ending in a string, Windows uses two bytes 0x0D
and 0x0A
for a line ending in a file. This means that if you write a string into a file in text mode, all occurrences of the single character \n
are written using those two bytes. That's why you get additional bytes in the file size of your examples.