Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

joelalmeida10

Como salvar o ficheiro de c em txt

Mensagens Recomendadas

joelalmeida10

Boas. :)

Eu tenho aqui uma questão e que eu estou a fazer um trabalho em c e o professor pediu para eu guardar os algoritmos em um ficheiro txt

tipo:

#include<stdio.h>
#include<stdlib.h>
#define MAX 80
main()
{
int ch;
char linha[MAX];
FILE *input, *output;

input = fopen("tmp.txt", "r");
if(input){
	output = fopen( "tmpcopy2.txt" , "w" );
	fgets(linha, MAX, input);
	while(!feof(input)){
		fputs(linha,output);
		fgets(linha, MAX, input);
	}
	fputs( linha, output );
	fclose(input);
	fclose(output);
}

Só que não está a funcionar não guarda nada nem cria o ficheiro txt.

Ainda estou a iniciar na programação por isso é que necessito de ajuda :thumbsup:

Editado por Rui Carlos
geshi

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

antes de mais, porque é que se estás a criar um programa em C, colocas na secção de C++ ?

segundo, se o professor diz que quer os algoritmos em .txt, não será o código fonte ? afinal o que são algoritmos ?

terceiro, o código está incompleto, tenho 100% a certeza que isso não compila.

quarto, o ciclo de leitura do ficheiro está incorrecto:

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

/* aumentei o tamanho porque 80 é pouco ... */
#define MAX 256

// este é o protótipo correcto de uma aplicação que não espera argumentos de entrada !!!
int main(void) {
   char linha[MAX];
   FILE *input, *output;

   // abrir o ficheiro de entrada
   if((input = fopen("tmp.txt", "r")) != NULL) {
       // abrir o ficheiro de saida
       if ((output = fopen( "tmpcopy2.txt" , "w" )) != NULL) {
           // ciclo de leitura do ficheiro de entrada
           while(fgets(linha, MAX, input) != NULL) {
               // escrever a linha lida no ficheiro de saída
               fputs(linha, output);
           }
           // fechar o ficheiro de saída
           fclose(output);
       } else {
           // é sempre bom saber o porque de não ter corrido bem
           printf("erro de abertura do ficheiro de saída\n");
       }
       // fechar o ficheiro de entrada
       fclose(input);
   } else {
       // é sempre bom saber o porque de nao ter corrido bem
       printf("erro de abertura do ficheiro de entrada\n");
   }

   // é necessário retornar algo ... normalmente o valor zero
   return 0;
}


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

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.