在 Windows 上
#include <stdio.h>
int main() {
putc('A',stdout);
putc('\r',stdout);
putc('\n',stdout);
}
输出
A<CR><CR><LF>
如何在不自动转换为 CR LF 的情况下将 LF char 写入标准输出?
我需要它来将简单的套接字流读取器转换为标准输出。 我试过 CodeGear 的 bcc32、mingw、tinycc 都产生相同的结果,将 putc 更改为 putchar、fputc、fwrite 也无济于事。
最佳答案
MSVC 的解决方案是:
#include <io.h>
#include <fcntl.h>
...
_setmode(1,_O_BINARY)
其他运行时可能会提供 C99 解决方案或替代方法。编辑:我相信 setmode([file number],O_BINARY)
起源于 Borland Turbo C,其他用于 MS-DOS 和 Windows 的编译器模仿了它。 _ 前缀用于保持命名空间干净,某些编译器可能不存在。
关于c - C 如何在不更改为 CR LF 的情况下将 LF 输出到标准输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5813301/