конвертировать int в char * для печати

Я хочу, чтобы значение int отображалось на экране в виде строки. Это для игры, которую я делаю в OpenGL. У меня есть что-то вроде этого:

char *string = "0"; // to declare

sprintf (label,"%d" ,string); // This prints 0

Это прекрасно работает для печати 0 на экране, однако, как вы, наверное, поняли, я хочу, чтобы 0 менялся. Я попытался преобразовать int в строку и попытаться присвоить это строке char *, но я думаю, что это невозможно. Я новичок в C ++, поэтому я не знаю много о, я был бы очень признателен за вашу помощь в этом. Чего я хочу добиться, так это:

char *string = "0"; // to declare
int number = 90; // declare int to be converted;

sprintf (label,"%d" ,string); // This prints 90

Я нашел методы преобразования для int в методы char, но не решил мою проблему. Спасибо за всю вашу помощь заранее.

2

Решение

Если все, что вы хотите сделать, это напечатать номер на экране, вы можете std::cout:

#include <iostream>

int nubmer = ....;

std::cout << number;

В противном случае вы можете передать номер в std::ostringstreamи получить базовый const char*:

std::strimgstream o;
o << number;
const char* string_ = o.str().c_str();
5

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

Использовать этот:

std::stringstream val;

val << number;

val.str();         // Gets you a C++ std::string
val.str().c_str(); // Gets you a C-String
4

   char label[100] = {"0"};
printf("%s\n",label);
int number = 90;
sprintf(label,"%d",number);
printf("%s\n",label);
sprintf(label,"%d",number + 1);
printf("%s\n",label);

выход:

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