Jump to content

Copiar texto de um ficheiro para outro


Recommended Posts

Posted

Boa noite a todos. Estou a fazer uma função para alterar o texto de um ficheiro, a estratégia que adotei para fazer isto foi escrever num texto temporário o que está no ficheiro original já com as alterações que quero fazer e no fim copiar o que está no ficheiro temporário para o ficheiro final. Mas não sei porque não estou a conseguir copiar do ficheiro temporário para o final, já fiz diversas tentativas para tentar corrigir mas não consegui. Se alguem conseguir detetar o erro fico muito agradecido.

 

void main(){
		 
		 char leitor[1000000], novaDescricao[10000], NomeTopico[100], pathTopic1[100], leitor1[10000];
		 int opcao;
		 FILE *topico1, *topicTemp, *topicFinal;
			system("clear");
			
			printf("Escreva o titulo do tópico a editar:");
			scanf(" %[^\n]s", NomeTopico);
			
			sprintf(pathTopic1, "../Projeto/Topicos/%s",NomeTopico);
			
			printf("Escreva a nova descrição:");
			
			scanf(" %[^\n]s", novaDescricao);
					
			
			topicTemp=fopen("../Projeto/Topicos/temp", "w");
			
			topico1=fopen(pathTopic1, "r");
			
			fputs(novaDescricao,topicTemp);
			fputs("\n", topicTemp);
			
			fgets(leitor, 1000000, topico1);
			 
			 while(fgets(leitor, 1000000, topico1) != NULL){
				 fputs(leitor,topicTemp);
				 
			 }
			 fclose(topico1);
			 
			 topicFinal=fopen("../Projeto/Topicos/Ola1", "w");
			
			while(fgets(leitor1,10000, topicTemp) !=NULL){
				 fputs(leitor1, topicFinal);
			 } 
			 fclose(topicFinal);	
						
	}
Posted

fica a referência que estás a complicar algo muito simples ...

void main() {
    char topico[100], path[100], descricao[10000];
    FILE * fd;

    system("clear");
    printf("Escreva o titulo do tópico a editar:");
    scanf(" %[^\n]s", topico);
    printf("Escreva a nova descrição:");
    scanf(" %[^\n]s", descricao);

    sprintf(path, "../Projeto/Topicos/%s", topico);
    if ((fd = fopen(path, "w")) == NULL) {
        printf("All Hell Breaks Loose !!!");
        exit(-1);
    }

    fprintf(fd, "%s", descricao);
    fclose(topicFinal);	
}
IRC : sim, é algo que ainda existe >> #p@p
Posted

Obrigado pela sugestão, mas nesse caso iria apagar tudo o que tenho no ficheiro, e a intenção é apenas alterar uma parte do ficheiro mantendo tudo o resto igual

Posted

Não estou a perceber, eu preciso de alterar a primeira linha de um ficheiro, com este código corrigindo o que tinha mal está a funcionar mas eu estou a aprender e provavelmente a cometer erros por isso se quiseres explicar o que estou a fazer mal fico agradecido

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.