Я хочу, чтобы значение 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, но не решил мою проблему. Спасибо за всю вашу помощь заранее.
Если все, что вы хотите сделать, это напечатать номер на экране, вы можете 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();
Использовать этот:
std::stringstream val;
val << number;
val.str(); // Gets you a C++ std::string
val.str().c_str(); // Gets you a C-String
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