Windows — стандартная альтернатива C ++ для itoa () для преобразования int в base 10 char *

Чтобы преобразовать целое число в основание 10 символов *

std::itoa(ConCounter, ID, 10);

ConCounter — это целое число, ID — это символ *, а 10 — это основание.

Это говорит о том, что йота не является членом std и без std это не объявлено. Я знаю, что это нестандартная функция, но я включил все библиотеки для нее, и он до сих пор не видит ее.

Как это сделать? Любые быстрые лайнеры?
Я пробовал следующее;

std::to_string //it's not declared for me when using mingw, it doesn't exist.
snprintf/sprintf //should work but it gives me the "invalid conversion from 'int' to 'char *'"    error
std::stoi //has same problem as iota

0

Решение

Я рекомендую использовать ответ Ройбатти, но я думаю, что sprintf тоже должен работать. Я думаю, что когда вы использовали его, вы забыли строку формата. Так должно быть:

char buf[16];
std::snprintf(buf, sizeof(buf), "%d", integer);
1

Другие решения

Попробуй это:

#include <sstream>

int i = // your number
std::ostringstream digit;
digit<<i;
std::string numberString(digit.str());
6

Также есть функция «strtol»: http://www.cplusplus.com/reference/cstdlib/strtol/

0
По вопросам рекламы [email protected]