[C con Clase] Mostrar numero en ventana

Steven Davidson steven en conclase.net
Lun Mar 19 13:21:21 CET 2007


Hola Álvaro,

El pasado 2007-03-19 12:08:19, Alvaro Lou escribió:

AL> Hola a todos.
AL> Necesito mostrar un número en una ventana utilizando la función del API 
AL> TextOut. Por ejemplo "TextOut(hDC,x,y,(aquí tengo que poner el número),(aquí el número de caracteres a mostrar));" y no encuentro la manera de convertir el entero o el real a cadena de caracteres.
AL> He mirado en las funciones de la libreria estándar de C y no he encontrado ninguna que lo haga. ¿Existe?

Sí existe. Usa la función estándar 'sprintf()'. Por ejemplo,

char szNumero[32];

int nCant = sprintf( szNumero, "%d", 123 );

TextOut( hDC, x,y, szNumero, nCant );

En lugar de 'nCant', también podríamos haber invocado 'strlen()', pero como 'sprintf()' ya nos da esta información, nos ahorramos el tener que invocarla.

AL> Otra pregunta: En el último parámetro de la función TextOut,hay que indicar el número de caracteres que se van a mostrar.¿Como puedo hacer para que coincida con el número de dígitos del entero o real?

Bueno, esto ya lo he explicado anteriormente. No tiene sentido contar los dígitos del número, ya que estamos manipulando caracteres. Además, si se trata de un número real, entonces tenemos más caracteres que los dígitos: signo positivo o negativo, coma decimal, la letra 'e' ó 'E' para indicar el exponente en base 10, seguido de un número entero positivo o negativo.


Espero haber aclarado la duda.

Steven


Más información sobre la lista de distribución Cconclase