2009-12-20 42 views
6

Estoy escribiendo un código que devuelve un entero, que luego debe salir con printw de la biblioteca ncurses. Sin embargo, dado que printw solo toma char *, no puedo encontrar la forma de generarlo.Almacenar un entero en un char * en C++

Básicamente, ¿hay alguna forma de almacenar un número entero en una matriz char o generar un número entero utilizando printw?

Respuesta

9

printw() acepta const char * como especificador de formato. Lo que quiere es

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

+1 la respuesta correcta – dfa

+0

por curiosidad, ¿qué es exactamente "% d"? – Galileo

+2

Es posible que desee buscar la página de manual de printf - http://linux.die.net/man/3/printf para conocer todo el poder del formateo. en particular,% d significa entero con signo como el primer parámetro después de la cadena de formato aquí. Pero eso ni siquiera es la parte superior del iceberg ;-) –

0

Utilice itoa() o sprintf() para convertir un número entero en una cadena ascii.

Ejemplo:

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

ahora u puede pasar como char * s

+4

Lo siento, mi respuesta es una porquería. Usa la de Michael Simplemente no estaba seguro de lo que hace ncurses printw, así que escribí una solución. –

+1

Puede eliminar la respuesta. Varios puntos "malos": 'itoa' - no existe tal cosa en el estándar C (solo' atoi'), es mejor usar 'snprintf (s, sizeof (s),"% d ", someInteger)' - - Más seguro. – Artyom

Cuestiones relacionadas