2012-09-20 3 views

Antwort

12
int score = 35; 
float time = 0.03; 
char* name = "Michael"; 
char text[256]; 
sprintf(text,"name is %s, time is %.2f, score is %d", name, time, score); 
CCLabelTTF* label = CCLabelTTF::labelWithString(text,"Arial",20); 
this->addChild(label); 
+0

die Antwort und der Quellcode ist groß, aber vielleicht würde ich entweder gehen darauf hin, mit std :: string und seine Fähigkeiten verketten oder sprintf mit char * - beides ist irgendwie komisch (zumindest für mich). –

+0

Ja stimmt, ich habe meine Antwort bearbeitet. akzeptiert aber sprintf std :: string? Ich kann mich nicht erinnern. coz Ich persönlich bevorzuge sprintf als verwenden Sie Zeichenfolge, um alle Zahlen und Ziffern zusammen zu verbinden, nur ein bisschen kompliziert für mich. –

+1

Sie können die Methode 'c_str()' verwenden, um eine 'std :: string' zu konvertieren. – alxcyl

5

Eine einfachere Lösung, um die Zeichenfolge zu einem bestimmten Zeitpunkt (from here) einzustellen. Definieren Sie zuerst ein Makro irgendwo in Ihrem Code.

#define ccsf(...) CCString::createWithFormat(__VA_ARGS__)->getCString() 

Dann können Sie die Zeichenfolge wie folgt jederzeit ändern:

m_pScoreLabel->setString(ccsf("%d pts", mCurrentScore)); 
Verwandte Themen