2014-04-02 223 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*