Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Programa que ao executar mostra o seu próprio código fonte

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    C / C++ Programa que ao executar mostra o seu próprio código fonte

    Tenho um pequeno projeto na faculdade onde tenho que fazer um
    programa em C que ao executar mostra o seu próprio código fonte sem os comentários...

    Eu consegui esse aqui, mas não consegui desaparecer com os comentários...

    #include <cstdlib>
    #include <iostream>
    #include <stdio.h>

    int main()
    {
    char str[255];
    FILE *arq;
    arq=fopen(“c:\\texte.txt”,”r”);
    if(arq)
    {
    while(!feof(arq))
    {
    fgets(str,255,arq);
    printf(“%s”,str);
    }
    }

    fclose(arq);
    printf(“\n\n”);
    system(“PAUSE”);
    return EXIT_SUCCESS;
    }

  • Font Size
    #2
    Boa tarde companheiro.
    Aqui vai a minha humilde contribuição. O programa exibe sua própria fonte, excepto os comentários. Fiz várias alterações ao seu programa inicial, para poder implementar a minha lógica. Qualquer dúvida é só postar.

    Código:
    /****
     * Fórum Guia do Hacker
     * Rolando Sanches {rolando.sanches@outlook.com}
     * 20/03/2013
     *
     * Programa que exibi o seu próprio código-fonte, excepto os comentários.
     ****/
    
    /* Inclusão de bibliotecas */
    #include <stdlib.h>
    #include <stdio.h>
    
    /* Funções */
    
    /**
     * main() - ponto de entrada do programa.
     */
    int main(void) {
        FILE *arq;
        char token;
    
        arq=fopen("teste.c","r");       // Abre o ficheiro
        if(!arq) {
            printf("ERRO: Não foi possivel abrir o ficheiro teste.c\n");
            return EXIT_FAILURE;
        }
        while(!feof(arq)) {     // Enquanto não for o fim do ficheiro...
            token = fgetc(arq);
            if(token == '/') {      // Se encontrar um '/' pega o próximo carácter, para verificar se se trata de um comentário
                token = fgetc(arq);
                switch(token) {
                case '/':       // Comentário de uma linha
                    while((token = fgetc(arq)) != '\n');
                    break;
                case '*':       // Comentário multi linha
                    while((token = fgetc(arq)) != EOF) {
                        if((token == '*') && ((token = fgetc(arq)) == '/')) {
                            token = '\0';
                            break;
                        }
                    }
                    break;
                default:        // Para o caso de ser uma simples /, como por exemplo na instrução x = 4/2;
                    printf("/");
                    break;
    
                }
            }
            printf("%c",token);
        }
        /* Apenas um comentario multi linha para testar o programa */
        fclose(arq);    // Fecha o arquivo com o código-fonte
        printf("\n\n");
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    
    // Fim do ficheiro
    “Finalmente encontrei um inimigo digno de mim e uma jornada em que preciso desenvolver toda a minha coragem, pois temos de combater homens bravos e monstruosas feras.”, Alexandre, o Grande.

    Comment

    X
    Working...
    X