将短裤数组写入文件

Writing an array of shorts to a file

出于某种原因(我还没有弄清楚),以下代码没有按预期工作。我正在尝试将一组短裤写入文件,虽然文件已成功生成,但值不正确。示例代码为

short* sarray = new short[2000];
for(int i=0;i<2000;i++)
    sarray[i]=i*2;

    FILE* oFile;

    oFile =  fopen("E:\audio_rec\test_1.raw", "w");

    int shortsRead =fwrite(sarray, sizeof(short), 2000, oFile);
    fclose(oFile);

文件内容(在十六进制编辑器中显示)。很明显,只有前 5 个值(最多 8 个)符合预期。 有什么想法吗?

谢谢

在 Windows 中,您需要告诉 fopen 数据是二进制的,否则会将“\n”混淆为“\r\n”。

fopen("E:\audio_rec\test_1.raw", "wb");