在Windows上C如何将LF输出到标准输出而不改变为CR LF?
#include <stdio.h>
int main() {
putc('A',stdout);
putc('\r',stdout);
putc('\n',stdout);
}
输出
A<CR><CR><LF>
怎么写只是LF字符,它自动转换为CR LF到标准输出?
我需要它使简单的套接字流阅读器标准输出。 我试过bcc32从CodeGear,mingw,tinycc都产生相同的结果,改变putc到putchar,fputc,fwrite也没有帮助。
但它不支持传递'NULL'作为文件名,并且您开始的stdout不一定具有_have_文件名。 – Random832 2011-04-28 04:01:22
谢谢。它可以工作,即使没有包含在tinycc和mingw中的io.h。必须包含在bcc32 io.h中,然后将_setmode更改为setmode。 – 2011-04-28 05:03:39
从Windows 10(至少)开始,这是不够的。控制台执行自己的翻译,应该通过设置DISABLE_NEWLINE_AUTO_RETURN控制台模式分别禁用。 (该常量在Windows 10 SDK中定义,但不在Windows 8 SDK中定义) – AnT 2018-01-24 09:15:55