2012-11-03 127 views
2

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

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焦炭的方法,howevernon已经解决了我的问题。感谢您提前给予您所有的帮助。

+0

约'printf'用'%D'是什么? – Jon

+0

“int number”在这一切中的作用是什么? – juanchopanza

+0

将字符串转换为整数有多种方式,反之亦然[1]。 [1]:http://stackoverflow.com/questions/5290089/how-to-convert-a-number-to-string-and-vice-versa-in-c – nogard

回答

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 
+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(); 
+0

谢谢,但我不只是使用c + +这是一个游戏的opengl,并能够打印这个在opengl我需要使用它的格式。谢谢! –

+0

关于downvote的任何意见? – juanchopanza

+0

@juanchopanza问题最初是标记为C++,当你回答它。当他说他正在使用C时,我将它重新标记为C。downvoter可能看到了你的C++答案,并没有意识到你是在它被重新绑定之前做出的。 – Scooter

4

使用此:

std::stringstream val; 

val << number; 

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

这是C++,而不是C – Barmar

+0

@Barmar这个问题被标记为C++,并且OP在注释“我不仅仅使用C++”中说明,这表明C++是可以的,但是与C某些API协调。 – juanchopanza

+1

没有我的downvotes – Barmar