• 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 posts in this topic

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

codigoasciiet0.gif

Shot at 2007-06-30

cumps fpinto

0

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other sites

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

0

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now