2014-04-02 256 views
-1

我有一個函數需要const char*作爲參數,但我擁有的數據是Datum(PostgreSQL),我使用DatumGetUint32() function轉換爲Uint32。我現在需要將它轉換爲const char*C++。我在網上查了很多不同的網站,但沒有得出確鑿的答案。任何幫助將不勝感激!提前致謝。將uint32轉換爲const char * C++

編輯:這是因爲我有不同的功能,我必須傳遞數據。目前,數據的格式爲Uint32。然而,該函數以'const char *'作爲參數。所以我的猜測是將Uint32轉換爲char,然後使用指針將它傳遞給函數。但我不確定如何進一步進行。希望這可以幫助你更好地理解!

+0

究竟應該如何轉換?請更具體一些。你想把整數作爲一個字符串嗎?例如:10035的值爲「10035」 – Paranaix

+0

所以我有這個名爲keyval的Uint32。我想在函數中傳遞一個const char *指向它。 – student001

+0

一個const char *指向一個Uint32?我不知道我明白了。 – jwav

回答

1

看看boost lexical_cast。我認爲它會幫助你。

+0

+1因爲Boost對很多東西都很漂亮,但是大多數人都沒有,安裝起來會很痛苦。 – jwav

1

如果你想要做的是

145 -> "145" 

然後sprintf是做INT爲char *過渡的非常標準的方式。然後當你打電話給你的功能時,你只需要將新制作的char*作爲const char*

例子:

char myString[10] = ""; // 4294967296 is the maximum for Uint32, so 10 characters it is 
sprintf(myString, "%d", (long)myUint32); // where 'myUint32' is your Uint32 variable 
my_function((const char*)myString); // where 'my_function' is your function requiring a const char*