出于某种原因(我还没弄清楚),以下代码并没有按预期工作。我正在尝试将一个短裤数组写入文件,并且在成功生成文件时,值不正确。示例代码是
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个)符合预期。 有什么想法吗?
由于
答案 0 :(得分:4)
在Windows中,您需要告诉fopen数据是二进制的还是混乱了#34; \ n&#34;到&#34; \ r \ n&#34;。
fopen("E:\\audio_rec\\test_1.raw", "wb");