我希望一个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方法,但是已经解决了我的问题。提前感谢您的帮助。
答案 0 :(得分:5)
如果您只想在屏幕上打印一个号码,那么您可以转到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();
答案 1 :(得分:4)
使用此:
std::stringstream val;
val << number;
val.str(); // Gets you a C++ std::string
val.str().c_str(); // Gets you a C-String
答案 2 :(得分:1)
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