Windows C ++ | При записи в файл, что отвечает за преобразование \ n в \ r \ n? - PullRequest
2 голосов
/ 19 марта 2020

При записи в файл строки с \n автоматически преобразуются в \r\n.

Что отвечает за такое поведение? Это часть функции cpp или что-то ближе к системе?

1 Ответ

1 голос
/ 19 марта 2020

Это ваш компилятор.

Когда вы работаете с определенными для ОС выводами c (например, файлами или стандартным выводом), компилятор обязан преобразовать escape-последовательность конца строки (\n) по специфике ОС c конец строки - на Unix это будет перевод строки (ASCII 0x0A), на старых Mac это возврат каретки (ASCII 0x0D), а на Windows это оба.

Этого можно избежать, открыв файл в двоичном режиме:

std::fstream("myFile.txt", std::ios_base::binary);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...