2013-12-12 97 views
0

如何從double重新解釋轉換爲char *(我需要它以字節的形式存儲double中的數據)。下面是代碼,我不知道爲什麼它不工作:reinterpret_cast double to char *

#include <iostream> 
int main(int argc, char **argv) 
{ 
    const double tmpDouble = 1234.; 
    char *tmpChar = reinterpret_cast<char*>(tmpDouble); 
    return 0; 
} 
+0

這個問題應該是「我如何將雙精度數據存儲爲二進制數據?」,但是在這裏偷偷摸摸地看到它。 :) –

+1

嘗試將您的tmpDouble變量的地址...'&tmpDouble'指向您的字節。 – nio

+1

@chris它是什麼'unsigned char *'? – 0x499602D2

回答

4

如果你已經有工作,它可能不會是你想要的 - 指針的值也只是1234 - 有效指向可能包含任何內容的地址(而不是可訪問的)。

如果你只是想在二進制格式double,你可以做

const byte* pDouble = reinterpret_cast<const byte*>(&tmpDouble); 
//          | 
//        note the address here 

但首先應該檢查什麼是你正在使用寫入文件的函數原型直接採取double

+0

@DyP錯過了,thx。 –