Jump to content
figboy

Copiar texto de um ficheiro para outro

Recommended Posts

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

 

Share this post


Link to post
Share on other sites
nunomonteiro123

Não tens que ler Read (r) e só depois dar Write(w)? 

  • Vote 1

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other sites

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.