Ir para o conteúdo
figboy

Copiar texto de um ficheiro para outro

Mensagens Recomendadas

figboy

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);	
						
	}

 

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
figboy

Que erro mais noob. Sim era isso, fechei o ficheiro temporário e voltei a abrir em modo de leitura e já ficou a funcionar. Obrigado

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
figboy

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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo
2 hours ago, figboy said:

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

se pretendes fazer isso com esse código, vais ter uma surpresa ...


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
figboy

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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.