>我通过将字节写入文件并将其另存为.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")
,以便您的代码可移植。