У меня есть функция, которая принимает const char*
в качестве аргумента, но у меня есть данные Datum(PostgreSQL)
, который я конвертирую в Uint32
с помощью DatumGetUint32() function
, Теперь мне нужно преобразовать его в const char*
в C++
, Я посмотрел онлайн, много разных сайтов, но не получил окончательного ответа. Любая помощь будет оценена! Заранее спасибо.
Редактировать: это потому, что у меня есть различные функции, которые я должен передать данные. В настоящее время данные имеют форму Uint32. Однако функция принимает в качестве параметра const char *. Поэтому я предполагаю преобразовать Uint32 в char и затем передать его функции с помощью указателя. Но я не уверен, что делать дальше. Надеюсь, это поможет вам лучше понять!
Взгляни на Boost lexical_cast. Я думаю, что это поможет вам.
Если то, что вы хотите сделать, это
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*