将int转换为char *进行打印

时间:2012-11-03 14:55:35

标签: c++ char int typeconverter

我希望一个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方法,但是已经解决了我的问题。提前感谢您的帮助。

3 个答案:

答案 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