2012-09-20 14 views

Respuesta

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

el código de respuesta y la fuente es grande, pero tal vez me gustaría señalar que, o bien van con std :: string y sus habilidades concatenación , o sprintf con char * - mezclar ambos es algo extraño (al menos para mí). –

+0

sí cierto, edité mi respuesta. pero ¿sprintf acepta std :: string? No puedo recordar Porque personalmente prefiero sprintf que usar string para conectar todos los números y dígitos, solo un poco complicado para mí. –

+1

Puede usar el método 'c_str()' para convertir un 'std :: string'. – alxcyl

5

Una solución más sencilla para establecer la cadena en un momento dado (from here). Primero defina una macro en algún lugar de su código.

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

A continuación, puede cambiar la cadena cualquier momento como este:

m_pScoreLabel->setString(ccsf("%d pts", mCurrentScore)); 
Cuestiones relacionadas