C / C ++ печать на заказ EOL - PullRequest
0 голосов
/ 26 ноября 2018

Я хочу сгенерировать на Windows файл (скрипт) для UNIX.Поэтому мне нужно вывести только LF символов, без вывода CR символов.

Когда я делаю fprintf(fpout, "some text\n");, символ \n автоматически заменяется на \r\n в файле.

Есть ли способ вывести конкретно только \n (LF) символ?

Язык - C ++, но функции ввода / вывода происходят от C.

1 Ответ

0 голосов
/ 26 ноября 2018

Вы можете открыть файл в двоичном режиме, например,

FILE *fpout = fopen("unixfile.txt", "wb");

fprintf(fpout, "some text\n"); // no \r inserted before \n

Как следствие, каждый байт, который вы передаете в fprintf, интерпретируется как байт и ничего больше, что должно пропускать преобразование из *От 1005 * до \r\n.

От cppreference на std :: fopen :

При желании можно указать флаг режима доступа к файлу "b", чтобы открытьфайл в двоичном режиме.Этот флаг не влияет на системы POSIX, но в Windows, например, он отключает специальную обработку '\ n' и '\ x1A'.

...