Jump to content
joelalmeida10

Como salvar o ficheiro de c em txt

Recommended Posts

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:

Edited by Rui Carlos
geshi

Share this post


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

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.