使用vsprintf將內容寫入文件。奇怪! linux&windows vsprintf float num到文件
輸出格式是:
"tt2:%f, tt2:%x", tt2, *((int *)&tt2)
Linux操作系統:
gcc 4.4.5: -O2 -ffloat-store
在linux.in文件是這樣的:
TT2:30759。 ,TT2:46f04e84
窗口:
vs2005 sp1: /O2 Precise (/fp:precise)
在Windows中。在文件中是這樣的:
tt2:30759。 ,tt2:46f04e84
這是爲什麼不同?
==================================
我發現我的情況的原因。
在windows中,我使用ofstream輸出到文件。它是一個C++庫。
在linux中,我只是使用寫入輸出到文件。這是c lib。
當我在linux中使用ofstream時,輸出是一樣的。
畢竟,感謝大家〜
'tt2'從哪裏來? –
由不同編譯器進行的舍入不同? –
@JoachimPileborg:很可能它是C庫,而不是編譯器。 – MSalters