Ir ao conteúdo
  • Cadastre-se
Bruna DElia

C Como copiar de um arquivo txt e colocar em outro

Recommended Posts

Oi gente, então estou fazendo programa para ler os caracteres que tem em um arquivo de texto, trocar alguns caracteres por outros e colocar em um novo arquivo. Qual função devo utilizar? Tentei fputs, mas não deu certo :(

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Bruna DElia    para ler o arquivo use a função fgetc assim :

caracter = fgetc(arquivo);

e para colocar no arquivo use o comando fprintf assim :

fprintf(arquivo,"%c",caractere);

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em ‎3‎/‎13‎/‎2018 às 21:31, devair1010 disse:

@Bruna DElia    para ler o arquivo use a função fgetc assim :


caracter = fgetc(arquivo);

e para colocar no arquivo use o comando fprintf assim :


fprintf(arquivo,"%c",caractere);

 

Entendi, coloquei isso no programa, mas mesmo assim não funcionou:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    FILE *novo, *velho;
    novo=fopen("ecoli.txt", "r");
    velho=fopen("rna.txt", "w");
    if (novo==NULL || velho==NULL){
        printf("Erro de abertura\n");
        system("pause");
        exit(1);
    }
    
    char letra;
    
    while( (letra = fgetc(velho)) != EOF ) {

    if(letra =='T') {letra='U';}
        fprintf(novo, "%c", letra);}

    fclose(velho);
    fclose(novo);
    return 0;
}

Não consigo encontrar o erro :(

adicionado 1 minuto depois
Em ‎3‎/‎13‎/‎2018 às 21:27, CiroboyBR disse:

Vou dar uma olhada, valeu :)

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Bruna DElia   você abriu o arquivo velho para gravar e está lendo nele assim ele não consegue ler  e depois você tenta gravar no arquivo novo , mas ele foi aberto para leitura, assim ele também não grava,  então precisa inverter isso,  e seu código modificado ficaria assim :

#include <stdio.h>
#include <stdlib.h>
int main()
{
    FILE *novo, *velho;
    novo=fopen("ecoli.txt","w");
    velho=fopen("rna.txt" ,"r");
    if (novo==NULL || velho==NULL){
        printf("Erro de abertura\n");
        system("pause");
        exit(1);
    }
    char letra;
    while( (letra = fgetc(velho)) != EOF )
    {
        if(letra =='T')letra='U';
        fprintf(novo, "%c", letra);
    }
    fclose(velho);
    fclose(novo);
    return 0;
}

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@devair1010 Fiz essa alteração, porém agora, o arquivo que está sendo lido fica em branco, ou seja, os dois arquivos ficam em branco após a execução do programa. o que pode ser?

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Bruna DElia     copie e use esse código que postei , pois testei e ele está funcionando bem,  porém  antes de rodar o código você precisa criar esse arquivo txt onde  vai ler , que é o rna , e escrever alguma coisa nele .

  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×