2012-03-13 127 views
1

我通常不使用二進制文件,所以我很抱歉如果答案是明顯的。我能夠從使用下面的命令一定的二進制文件中讀取罰款:C:讀取二進制文件

nread = fread(&data[0],sizeof(float),maxpts,fptr); 

的二進制文件是一個標準的科學格式,它似乎是數據存儲爲浮動。然而,我寧願將這些數據讀入double類型的數組中,而當我試圖簡單地將數據類型切換爲double(從float)並將sizeof(float)保持不變時,它不會正確檢索我的數據。我會如何去做這件事?謝謝,扎克。

回答

3

您需要將數據讀取爲浮點數並通過批量賦值將其轉換爲雙精度(例如,讀入浮點數組,具有單獨的雙精度數組,並且對於每個元素都設置爲doubleArray[i] = floatArray[i])。

有些方法可以加速這個過程(通過使用有關浮點和雙精度存儲的具體事實),但它可能不值得,尤其是因爲它可能會引入細微的不準確性。

+0

好的謝謝。 – zach 2012-03-13 00:15:11