Ir para conteúdo
Fórum Script Brasil
  • 0

Retirando comentarios


Guest Carlos Costa Junior

Pergunta

Guest Carlos Costa Junior

Galera estou fazendo um exercicio da faculdade no qual consiste no seguinte:

Eu criei um arquivo em .txt no qual dentro dele possui um algoritimo em C com comentarios, o que tenho que fazer é criar um codigo que abra esse arquivo e retire somente os comentarios. Eu fiz o seguinte na execução do codigo eu crio um arquivo aonde ficarão os comentarios e outro onde ficarão os codigos sem o comentario, mais o que acontece é que apartir do momento que ele encontra o primeiro comentario ele já leva tudo que tem dps e não analisa o restante das linhas, gostaria que alguém me ajudasse mostrando como faço pra analizar o final da linha pois o tipo de comentario que usar e analisar é p "//".

Aqui está o meu codigo no momento:

#include<stdio.h>

#include<stdlib.h>

int main(){

FILE *Leitura, *Codigo, *Comentario;

char c;

Leitura = fopen("CodigoComentado.txt","r");

if(!Leitura){ /*Caso ocorra algum erro na abertura do arquivo..O programa aborta automaticamente*/

printf("Erro! Impossivel abrir o arquivo de leitura!\n");

getch();

exit(1);

}

Codigo = fopen("CodigoDescomentado.txt","w");

if(!Codigo){ /*Caso ocorra algum erro na abertura do arquivo..O programa aborta automaticamente*/

printf("Erro! Impossivel abrir o arquivo de escrita!\n");

getch();

exit(1);

}

Comentario = fopen("Comentario.txt","w");

if(!Comentario){ /*Caso ocorra algum erro na abertura do arquivo..O programa aborta automaticamente*/

printf("Erro! Impossivel abrir o arquivo de comentario!\n");

getch();

exit(1);

}

do{

c = fgetc(Leitura);

if(c == '/'){

c = fgetc(Leitura); //Posiciona pro proxímo caracter

if(c == '/'){ // Se for barra

while(c != EOF){ //Apartir daqui é só comentarios

c = fgetc(Leitura);

if(c != EOF){

fputc(c, Comentario);

}

}

}

else{

fputc('/', Codigo); //Senão encontrar duas // grava no arquivo do codigo

if(c != EOF)

fputc(c, Codigo); //Se não for final do arquivo ele continua gravando

}

}

else{ // se não for / copia tambem no arquivo de codigo

if(c != EOF)

fputc(c, Codigo);

}

} while(c != EOF); // Enquanto o final não chegar

fclose(Leitura);

fclose(Codigo);

fclose(Comentario);

printf("Comentarios removidos.");

getchar();

}

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...