2

我想要一个 int 值作为字符串显示在屏幕上。这是我在opengl中做的一个游戏。我有这样的事情:

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

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

这非常适合在屏幕上打印 0,但是正如您可能理解的那样,我希望 0 发生变化。我尝试将 int 转换为 string 并尝试将其分配给 char *string,但我认为这是不可能的。我是 C++ 的新手,所以我不太了解,非常感谢您的帮助。我想要实现的是:

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

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

我发现将 int 方法转换为 char 方法,但是没有解决我的问题。感谢您提前提供的所有帮助。

4

3 回答 3

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();
于 2012-11-03T15:00:38.413 回答
4

用这个:

std::stringstream val;

val << number;

val.str();         // Gets you a C++ std::string
val.str().c_str(); // Gets you a C-String
于 2012-11-03T15:06:34.587 回答
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
于 2012-11-03T14:59:18.660 回答