Я работаю с VS 2010 на Windows.У меня есть функция, которая принимает указатель char
.Теперь внутри функции я звоню std::hex
, чтобы преобразовать ее в десятичную, но по какой-то причине она не работает.Он выводит большое значение, что заставляет меня думать, что вместо этого он конвертирует адрес.
void convertHexToDec(char* hex, char * dec)
{
long long decimal;
std::stringstream ss;
ss << hex;
ss >> std::hex >> decimal;
sprintf (dec, "%llu", decimal);
}
Итак, если передача указателя char
, содержащего "58"
, выходное десятичное значение будет выглядеть примерно так:1D34E78xxxxxxxxx
.Похоже, что он конвертирует адрес гекса.
Я тоже пробовал эти способы:
ss << *hex;
ss << (char*)hex[0];
ss << (int *)&hex[0];
Ничего из вышеперечисленного не сработало.
Любая идея, как я могу сделатьэта функция работает?