我习惯于使用 fwrite 将缓冲区的内容写入 gcc 中的文件。但是,由于某种原因,fwrite 在 Visual C++ 2005 中似乎无法正常工作。
我现在正在做的是将文本文件转换为二进制文件。该程序在前 61 行运行良好,但在第 62 行,它在输出二进制文件中插入了一个 0x0d。基本上,它变成了原版
12 0a 00
至
12 0d 0a 00
我检查了缓冲区,内容是正确的,即
buffer[18] = 0x12, buffer[19] = 0x0a, buffer[20] = 0x00
我试图将这个缓冲区写入文件
fwrite(buffer, 1, length, fout)
其中长度是缓冲区内容大小的正确值。
这发生在我身上一次,我必须将我的代码从 fwrite 更改为 WriteFile 才能正常工作。我的输出中插入 0x0d 是否有原因?我可以解决这个问题,还是我必须尝试使用 WriteFile 来代替?