2012-11-03 184 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