Это ваш компилятор.
Когда вы работаете с определенными для ОС выводами c (например, файлами или стандартным выводом), компилятор обязан преобразовать escape-последовательность конца строки (\n
) по специфике ОС c конец строки - на Unix это будет перевод строки (ASCII 0x0A
), на старых Mac это возврат каретки (ASCII 0x0D
), а на Windows это оба.
Этого можно избежать, открыв файл в двоичном режиме:
std::fstream("myFile.txt", std::ios_base::binary);