• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

fpinto

[C] Imprimir código ASCII

6 mensagens neste tópico

Bem, isto aqui não e muito útil mas encontrei esta imagem na Internet.

codigoasciiet0.gif

Shot at 2007-06-30

cumps fpinto

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

A melhor maneira de saber o que é que sai, é ver todas as saídas...

#include <stdio.h>
#include <math.h>

int main()
{
    unsigned char a = 0;
    int index;
    const int MAX = pow(2, sizeof(a) * 8);
    
    FILE *ascii = fopen("ascii.txt", "wt");
    if(!ascii)
    {
        printf("somewhy failed\n");
        return 1;
    }

    fprintf(ascii, "  dec  oct  hex char\n");
    for(index = 0; index < MAX; index++, a++)
    {
        fprintf(ascii, "%5d%5o%5x%5c\n", a, a, a, a);
    }

    printf("done");
    return 0;
}

alguns editores de texto representam os caracteres de escape com mais do que "branco", ou "caixinha que significa que não tenho o caracter", como é o caso do Vim.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

não precisas de duas variáveis ('a' e 'index'), o 'a' servia para tudo.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

não precisas de duas variáveis ('a' e 'index'), o 'a' servia para tudo.

bem... por acaso é a Anao o A. a letra a... xD

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

não precisas de duas variáveis ('a' e 'index'), o 'a' servia para tudo.

sei, mas tinha de impor uma condição de paragem diferente, caso contrário andaria por ali às voltas e nunca mais parava.

fpinto, 'a' é um caracter, mais genericamente.

EDIT:

fica melhor, de facto. além disso eu sei que o máximo é quando a seguir "volta ao início", portanto:

#include <stdio.h>

int main()
{
    unsigned char a = 0;
    
    FILE *ascii = fopen("ascii.txt", "wt");
    if(!ascii)
    {
        printf("somewhy failed\n");
        return 1;
    }

    fprintf(ascii, "%5s%5s%5s%5s\n", "dec", "oct", "hex", "char");
    do
    {
        fprintf(ascii, "%5d%5o%5x%5c\n", a, a, a, a);
    }
    while(++a != 0);

    printf("done");
    return 0;
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora