C 如何停止fprintf打印\r';要在Windows中与\n一起存档的

C 如何停止fprintf打印\r';要在Windows中与\n一起存档的,c,windows,printf,line-endings,C,Windows,Printf,Line Endings,当我使用fprintf时: fprintf(somefile,"%c",'\n'); 它将“\r\n”打印到文件中。如何打印“\n”? 我正在写一个二进制文件。上面的代码仅用于调试。打开文件时,必须以二进制模式打开,而不是以文本模式打开。 这是这样做的: fopen("filename", "wb"); fopen(“,”wb“)为什么要阻止它“\r\n”是Windows指示文本文件中一行结束的方式。如果只编写“\n”,您将得到一个无效的文本文件,其他Windows程序可能无法正确处理该文件

当我使用fprintf时:

fprintf(somefile,"%c",'\n');
它将“\r\n”打印到文件中。如何打印“\n”?

我正在写一个二进制文件。上面的代码仅用于调试。

打开文件时,必须以二进制模式打开,而不是以文本模式打开。 这是这样做的:

fopen("filename", "wb");

fopen(“,”wb“)为什么要阻止它<代码>“\r\n”是Windows指示文本文件中一行结束的方式。如果只编写
“\n”
,您将得到一个无效的文本文件,其他Windows程序可能无法正确处理该文件。@KeithThompson:十年前可能是这样。如今,stuff可以很好地处理适当的文本文件。:-)请注意,cygwin(除非您破坏了全局配置,这将破坏许多程序)始终使用二进制模式,并且为了与POSIX保持一致,需要对文本和二进制进行相同的stdio处理。@r如果大多数现代文本编辑器和/或Windows下的其他程序确实正确处理\n仅文本文件,Windows仍然记事本不正确。顺便说一句,我不是说你不应该这么做。您可能有充分的理由省略
'\r'
字符(从而创建严格无效的Windows文本文件)。但如果是这样的话,知道原因会让我们更容易帮助你。