C/C++ 打印自定义 EOL
C/C++ print custom EOL
我想在 Windows 上为 UNIX 生成一个文件(脚本)。所以我只需要输出LF
个字符,而不需要输出CR
个字符。
当我执行 fprintf(fpout, "some text\n");
时,字符 \n
会自动替换为文件中的 \r\n
。
有没有办法专门输出 \n
(LF
) 个字符?
语言是 C++,但是 I/O 函数来自 C。
您可以用二进制模式打开文件,例如
FILE *fpout = fopen("unixfile.txt", "wb");
fprintf(fpout, "some text\n"); // no \r inserted before \n
因此,您传递给 fprintf
的每个字节都被解释为一个字节,而不是其他任何内容,这应该省略从 \n
到 \r\n
的转换。
来自 std::fopen 上的 cppreference:
File access mode flag "b" can optionally be specified to open a file in binary mode. This flag has no effect on POSIX systems, but on Windows, for example, it disables special handling of '\n' and '\x1A'.
我想在 Windows 上为 UNIX 生成一个文件(脚本)。所以我只需要输出LF
个字符,而不需要输出CR
个字符。
当我执行 fprintf(fpout, "some text\n");
时,字符 \n
会自动替换为文件中的 \r\n
。
有没有办法专门输出 \n
(LF
) 个字符?
语言是 C++,但是 I/O 函数来自 C。
您可以用二进制模式打开文件,例如
FILE *fpout = fopen("unixfile.txt", "wb");
fprintf(fpout, "some text\n"); // no \r inserted before \n
因此,您传递给 fprintf
的每个字节都被解释为一个字节,而不是其他任何内容,这应该省略从 \n
到 \r\n
的转换。
来自 std::fopen 上的 cppreference:
File access mode flag "b" can optionally be specified to open a file in binary mode. This flag has no effect on POSIX systems, but on Windows, for example, it disables special handling of '\n' and '\x1A'.