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

fo_11

Problema em escrever na linha de comandos C

Mensagens Recomendadas

fo_11

Estou com problema em escrever na linha de comandos o que acabei de escrever num ficheiro.

eu abro um ficheiro com "w+" que é read and write mas não funciona. só se abrir depois outra vez o ficheiro mas desta vez com "r"

#include<stdio.h>
#include<stdlib.h>
#define MAX 500
void writefile(FILE*,int,int);
void readfile(FILE*);

int main()
{
    FILE *fp;
    char nome[MAX];
    int limite_inf,limite_sup;
    
     printf("Inserir nome ficheiro:");
     gets(nome);
     fp=fopen(nome,"w+");
     printf("Inserir limite inferior:");
     scanf("%d",&limite_inf);
     printf("Inserir limite superiror:");
     scanf("%d",&limite_sup);
     
     writefile(fp,limite_sup,limite_inf);
     readfile(fp);
     fclose(fp);
     system("pause");
}

void writefile(FILE *fp,int limite_sup,int limite_inf)
{
     int i,num;
     fprintf(fp,"n n**2\n--- ---\n");
     for(i=limite_inf;i<limite_sup+1;i++)
      {num=i;
       fprintf(fp,"%02d",num);
       fprintf(fp,"  %02d\n",num*num);
      }
}
void readfile(FILE*fp)
{
     char linha[MAX];
     printf("\n\n\n");
     while(fgets(linha,MAX,fp))            
        puts(linha);
}

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Baderous

Porque após teres feito a escrita para o ficheiro, o file pointer encontra-se a apontar para o fim do ficheiro, daí que ao tentares ler não vais ler nada. Ao voltares a abrir o ficheiro em modo de leitura, o file pointer é colocado no início do ficheiro, daí que resulte. Uma outra opção passa pela utilização da função rewind, que coloca o file pointer no início do ficheiro.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
fo_11

Já consegui resolver o problema. Obrigado.

Parece um bocado obvio essa solução mas estou no inicio e ainda me falta muita base na linguagem c  😳

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.