Alasca 0 Denunciar post Postado Setembro 1, 2016 Estou com tendo alguns erros ao escrever um programa para corrigir o texto gravado em texto.txt. A correção deveria inserir uma vírgula após a palavra Bentinho e uma interrogação no fim da frase. Para isso, é preciso ler o arquivo de entrada texto.txt e fazer as correções, então gravar a nova frase em um novo arquivo chamado textocerto.txt. Esse é o conteúdo de texto.txt. Mas, Bentinho que e protonotario apostolico Esse é o código: #include<stdio.h> #include<stdlib.h> #include<string.h> int Le_texto(char v[500]) { FILE *fp; if ((fp=fopen("texto.txt","r"))==NULL) { printf("Não foi possivel abrir arquivo!"); exit(1); } fgets(v,500, fp); printf("%s", v); fclose(fp); return 0; } void Corrigir (char v) { char s1[] = "Mas, Bentinho"; char s2[] = ","; char s3[] = " que e protonotario apostolico"; char s4[] = "?"; char v[]; strcat(s1, s2); strcpy(v, s1); puts(v); strcat(s3, s4); strcpy(v, s3); puts(v); } void Grava_texto(char v[500]) { FILE *fp2; if ((fp2=fopen("textocerto.txt","w"))==NULL) { printf("Não foi possivel abrir arquivo!"); exit(1); } fgets(v,500, fp2); printf("%s", v); fclose(fp2); return 0; } int main() { char vetor[500]; Le_texto(vetor); return 0; } Se alguém puder ajudar agradeço muito! Compartilhar este post Link para o post Compartilhar em outros sites
herberthleao 9 Denunciar post Postado Setembro 2, 2016 Olá! Poderia descrever que erros está recebendo? Compartilhar este post Link para o post Compartilhar em outros sites
Alasca 0 Denunciar post Postado Setembro 2, 2016 Bom @Arcanck, a ideia é corrigir o texto e gravá-lo em outro arquivo. Mas não estou conseguindo criar o outro arquivo com o texto corrigido. Compartilhar este post Link para o post Compartilhar em outros sites
Felipe-Petrópolis 11 Denunciar post Postado Setembro 3, 2016 Olá! Olha, dei uma olhada rapida no codigo e dei uma corrigida basica, dê uma olhada e veja se consegue entender o que estava acontecendo de errado. #include<stdio.h> #include<stdlib.h> #include<string.h> int Le_texto ( char v[] ) { void Corrigi_texto ( char [] ); FILE *fp; if ( ( fp = fopen ( "texto.txt", "r" ) ) == NULL ) { printf ( "Não foi possivel abrir arquivo!" ); exit ( 1 ); } fgets ( v, 500, fp ); printf ( "%s", v ); fclose ( fp ); Corrigi_texto ( v ); return 0; } void Corrigi_texto ( char v[] ) { void Grava_texto ( char [] ); Grava_texto ( v ); } void Grava_texto ( char v[] ) { FILE *fp2; if ( ( fp2 = fopen ( "textocerto.txt", "w" ) ) == NULL ) { printf ( "Não foi possivel abrir arquivo!" ); exit ( 1 ); } fputs ( v, fp2 ); printf ( "%s", v ); fclose ( fp2 ); } int main() { int Le_texto ( char [] ); char vetor [ 500 ]; Le_texto ( vetor ); return 0; } Basicamente o texto corrigido não era criado porque voce não chamava a função que continha o codigo para a tarefa, alem disso voce estava usando a função fgets(), quando o correto seria fputs()! Ubuntu 14.04 LTS - GCC 4.8 - CodeBlocks 13.12 Valeu e ate a Proxima ! ! ! Compartilhar este post Link para o post Compartilhar em outros sites
Alasca 0 Denunciar post Postado Setembro 4, 2016 Fiz algumas modificações no código e uni as funções de corrigir e gravar o texto. Agora está funcionando tudo certo. Obrigada pela ajuda! Segue o código final: #include<stdio.h> #include<stdlib.h> #include<string.h> int Le_texto(char v[500]) { FILE *fp; if ((fp=fopen("texto.txt","r"))==NULL) { printf("Não foi possivel abrir arquivo!"); exit(1); } fgets(v,500, fp); printf("%s", v); fclose(fp); return 0; } void Grava_texto() { char s1[] = "Mas, Bentinho"; char s2[] = ","; char s3[] = " que e protonotario apostolico"; char s4[] = "?"; char v[500]; strcat(s1, s2); strcat(s1, s3); strcat(s1, s4); strcpy(v, s1); puts(v); FILE *fp2; fp2=fopen("textocerto.txt","w"); if(fp2 == NULL) { printf("Erro na abertura do arquivo!"); exit(1); } fprintf(fp2, "%s", v); fclose(fp2); printf("\n\nDados gravados com sucesso!"); getch(); exit(1); } int main() { char v[500]; printf("Texto original:\n"); Le_texto(v); printf("\n"); printf("Texto corrigido:\n"); Grava_texto(v); return 0; } Compartilhar este post Link para o post Compartilhar em outros sites