1
我有一個簡單的程序,我已經編譯了MinGW和Visual C++ 2008 Express,並且都給出了大於88200的輸出文件。當我設置s = 0時,兩個程序都按預期工作。我究竟做錯了什麼?爲什麼我的文件會損壞輸出?
#include <fstream>
using namespace std;
int main(int argc, char *argv[])
{
int i;
short s;
fstream f;
f.open("test.raw", ios_base::out);
for(i = 0; i < 44100; i++)
{
s = i & 0xFFFF; // PROBLEM?
f.write(reinterpret_cast<const char *>(&s), sizeof(s));
}
f.close();
return 0;
}
請注意,這種事情不會跨越不同的端元結構。 (至少,你將無法讀取另一個寫回的文件。) – Thanatos 2010-06-08 22:19:48