i
così com'è quando convertito in un char corrisponderà al suo token ascii (in questo caso STX
) Vedi la tabella qui: http://www.asciitable.com/
Aggiungendo '0'
al numero che si sta effettivamente diventando così il valore ASCII corretto .
Naturalmente avete toccato esattamente un problema con questo codice che è quello non è immediatamente evidente ciò che fa. Si dovrebbe considerare invece fare qualcosa di simile, se si desidera utilizzare c-style:
itoa(i);
o meglio ancora bastone per C++:
std::stringstream ss;
ss << i;
ss.str(); //for strings
ss.str().c_str(); // for c-style strings.
fonte
2014-06-26 04:13:20
Qual è 'char (i + '0'); 'in C++? (* Questa è una domanda reale. *) – this
@questo compila su topcoder:/ – sgarza62
@questo, è l'intero 'i' aggiunto con' '0'' promosso a un intero, il risultato viene eseguito su un 'char' con un cast in stile funzionale, che fa lo stesso di un cast in stile C. – chris