C语言 创建.mid文件:在 Windows 中写入""会导致"\r"



>我通过将字节写入文件并将其另存为.midi创建了一个.mid文件。我可以运行它并且它可以工作,但在某些特殊情况下它不起作用。

如果我写一个包含n(ASCII10(的字节,那么它将rn写入2个字节,这使得.mid无法运行。(这对于Windows机器来说是正常的,但在我的情况下是不可取的。编写n的一个例子可能是在选择由n表示的键时。

是否有一种解决方法可以写入n而不是rn,或者另一种方法来确保写入的字节是 Windows 计算机上的 ASCII10

谢谢!

在 linux/unix 上,指定"wb"还是"w"来创建文件并不重要。

但是在窗口中使用fopen创建文本文件意味着所有n都转换为rn,因此,如果您使用它来创建二进制文件,则如果有一些字节值为"10"(换行(,二进制文件将"损坏">

简单的解决方案:在所有平台上创建二进制文件时始终使用fopen("file.bin","wb"),以便您的代码可移植。

最新更新