Dan*_*ung 6 c windows newline line-endings
在Windows上
#include <stdio.h>
int main() {
putc('A',stdout);
putc('\r',stdout);
putc('\n',stdout);
}
Run Code Online (Sandbox Code Playgroud)
输出
A<CR><CR><LF>
Run Code Online (Sandbox Code Playgroud)
如何在不自动转换为CR LF的情况下将LF char写入stdout?
我需要它来简单的套接字流读取器到stdout.我尝试过来自CodeGear的bcc32,mingw,tinycc都产生相同的结果,将putc改为putchar,fputc,fwrite也无济于事.
Ran*_*832 11
MSVC解决方案是:
#include <io.h>
#include <fcntl.h>
...
_setmode(1,_O_BINARY)
Run Code Online (Sandbox Code Playgroud)
其他运行时可以提供C99解决方案或替代方式.编辑:我相信setmode([file number],O_BINARY)起源于Borland Turbo C,其他MS-DOS和Windows编译器模仿它.完成_前缀是为了保持名称空间的清洁,并且某些编译器可能不存在.