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
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
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.