EnzoFerber
(usa FreeBSD)
Enviado em 17/06/2010 - 13:12h
Depende da informação que você quer:
O post ai de cima tá certo.
Você tem que entender a tabela ASCII pra isso:
int main ( void )
{
register int i;
for ( i = 0; i < 256; i++ )
printf ("%d\t%c\t%x\n", i, i ,i);
return 0;
}
Esse programa vai imprimir a tabela ASCII pra você em DECIMAL, CHAR e HEXA.
Se o que você quer fazer é passar um valor maior que 9 para char (exemplo, 10) e que o programa imprima o numero 10, você nao vai conseguir. Char é apenas um caractere, e o numero 10 são 2, alem de não ter o numero 10 na tabela ASCII. 10 seria o 1 e o 0 (49 e 48 na tabela).
Mas para imprimir o caractere que o numero representa na tabela é bem simples.
printf ( "%c", 65 ); // vai imprimir 'A'
printf ( "%c", 50 ); // vai imprimir '2'
Entendeu?
Para imprimir o 10 por exemplo, você precisa passar numero por numero para uma string e imprimir a string.
char *ntostr ( int dec )
{
register int i;
char *str = (char *) malloc ( MAX_SIZE * sizeof(char));
char *aux = (char *) malloc ( MAX_SIZE * sizeof(char));
for ( i = 0; i < MAX_SIZE; i++ )
{
if ( dec == 0 ) break;
str[i] = (dec % 10) + 48;
dec /= 10;
}
str[i] = 0x0;
return str;
}
Essa função devolve uma string com o numero invertido. Ai é so fazer outra pra desenverter ou colocar um for() no final dela. Coisa simples.
ntostr(156) = 651 em string
Espero ter ajudado,
Qualquer coisa posta denovo,
[]'s
Enzo