Я хочу сгенерировать на Windows файл (скрипт) для UNIX. Так что мне нужно вывести только LF
символы, без вывода CR
персонажи.
Когда я делаю fprintf(fpout, "some text\n");
, персонаж \n
автоматически заменяется \r\n
в файле.
Есть ли способ вывести конкретно просто \n
(LF
) персонаж?
Язык C ++, но функции ввода / вывода происходят из C.
Вы можете открыть файл в двоичном режиме, например,
FILE *fpout = fopen("unixfile.txt", "wb");
fprintf(fpout, "some text\n"); // no \r inserted before \n
Как следствие, каждый байт, который вы передаете fprintf
интерпретируется как байт и ничего более, что должно пропускать преобразование из \n
в \r\n
,
Из ссылки на станд :: Еореп:
При необходимости можно указать флаг режима доступа к файлу «b», чтобы открыть файл в двоичном режиме. Этот флаг не влияет на системы POSIX, но в Windows, например, он отключает специальную обработку ‘\ n’ и ‘\ x1A’.
Других решений пока нет …