【问题标题】:convert int to char* to print将 int 转换为 char* 以打印
【发布时间】:2012-10-23 23:59:50
【问题描述】:

我想要一个 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 方法的方法,但是没有解决我的问题。提前感谢您的所有帮助。

【问题讨论】:

  • printf%d 怎么样?
  • int number 在这一切中的作用是什么?
  • 有很多方法可以将[字符串转换为整数,反之亦然][1]。 [1]:stackoverflow.com/questions/5290089/…
  • 基本上数字就是分数,而且会不断变化,所以我想刷新屏幕上的分数
  • @Scooter:在对问题做出如此根本的改变之前,请先询问作者。没有任何迹象表明问题只是 C。

标签: c++ char int typeconverter


【解决方案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

【讨论】:

  • 非常感谢您的帮助我是新手,我有点挣扎谢谢!
【解决方案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();

【讨论】:

  • 谢谢,但我不只使用 c++ 这是一个用于 opengl 的游戏,为了能够在 opengl 中打印它,我需要以这种格式使用它。谢谢!
  • @juanchopanza 当您回答该问题时,该问题最初被标记为 C++。当他说他使用 C 时,我将其重新标记为 C。反对者可能看到了您的 C++ 答案,但在重新标记之前没有意识到您已经做到了。
  • @Scooter OP 说“我不只使用 C++”,这意味着 C++ 是可以的,只要有人以某种方式从中获得 char*
  • 是的,我已经撤消了我的两次反对票,因为这已经得到了解释。
【解决方案3】:

使用这个:

std::stringstream val;

val << number;

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

【讨论】:

  • @Barmar 问题被标记为 C++,并且 OP 在评论中声明“我不只使用 C++”,这表明 C++ 是可以的,但与 C 某些 API 协调。
猜你喜欢
  • 2015-09-01
  • 2012-08-07
  • 1970-01-01
  • 1970-01-01
  • 2011-02-25
  • 2015-11-23
  • 2015-12-18
  • 2017-04-25
相关资源
最近更新 更多