2009-12-20 12 views
6

Sto scrivendo un codice che restituisce un numero intero, che deve quindi essere emesso utilizzando printw dalla libreria ncurses. Tuttavia, poiché printw accetta solo char *, non riesco a capire come esportarlo.Memorizzare un numero intero in un carattere * in C++

In sostanza, c'è un modo per memorizzare un intero in un array di caratteri, o generare un intero utilizzando printw?

risposta

9

printw() accetta const char * come identificatore di formato. Quello che vuoi è

printw("%d",yournumber); 
+1

+1 la risposta giusta – dfa

+0

per curiosità, che cos'è esattamente "% d"? – Galileo

+2

Si potrebbe voler consultare la manpage printf - http://linux.die.net/man/3/printf per apprendere tutta la potenza della formattazione. in particolare% d significa intero con segno come primo parametro dopo la stringa di formato qui. Ma non è nemmeno la cima dell'iceberg ;-) –

0

Utilizzare itoa() o sprintf() per convertire il numero intero in stringa ascii.

Esempio:

char s[50]; 
sprintf(s, "%d", someInteger); 

ora u può passare s come char *

+4

Scusa, la mia risposta è merda. Usa quello di Michael. Non ero sicuro di ciò che fa ncurses printw, quindi ho scritto una soluzione alternativa. –

+1

È possibile eliminare la risposta. Diversi punti "cattivi": "itoa" - non c'è nulla di simile nello standard C (solo 'atoi'), è meglio usare' snprintf (s, sizeof (s), "% d", someInteger) '- - più sicuro – Artyom