C / C ++打印自定义EOL

时间:2018-11-26 12:40:07

标签: c++ c printf output eol

我想在Windows上为UNIX生成文件(脚本)。因此,我只需要输出LF个字符,而不输出CR个字符。

当我执行fprintf(fpout, "some text\n");时,文件中的字符\n将自动替换为\r\n

是否可以仅输出\nLF)个字符?

语言是C ++,但是I / O函数来自C。

1 个答案:

答案 0 :(得分:9)

您可以以二进制模式打开文件,例如

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

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

因此,您传递给fprintf的每个字节都被解释为一个字节,而没有别的,这应该省略从\n\r\n的转换。

来自std::fopen上的cppreference:

  

可以选择指定文件访问模式标记“ b”以二进制模式打开文件。该标志在POSIX系统上不起作用,但是在Windows上,例如,它禁用对'\ n'和'\ x1A'的特殊处理。