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

Ajustes ao programa

Mensagens Recomendadas

fo_11

Peço desculpa por estar constantemente a inserir novos tópicos mas as duvidas não param de surgir e ando aqui às voltas e não consigo resolver o problema.

O objectivo deste programa é escrever a data no formato dd.mm.aaaa num ficheiro e apartir do ficheiro que acabamos de criar voltar a escrever a informação na linha de comandos o que está no ficheiro.

O problema é na escrita na linha de comandos. não aparece aquilo que devia que era as datas inserias

#include<stdio.h>
#include<stdlib.h>
int const MAX=500;

int main()
{
    FILE *fp;
    char nome[MAX];
    int data[MAX],i,n;
    
    printf("Inserir nome ficheiro:");
    gets(nome);
    if((fp=fopen(nome,"wb"))==NULL)
     {printf("\n\nIMPOSSIVEL CRIAR FICHEIRO\n");
     }
    for(i=0;;i=i+3)
       {printf("\nInserir data (dd.mm.aaaa):\n");
        scanf("%d.%d.%d",&data[i],&data[i+1],&data[i+2]);
        if(data[i+2]==0&&data[i+1]==0&&data[i]==0)
          break;
       }
     if(fwrite(data,sizeof(int),i,fp)!=i)
       printf("\n\nNAO FOI COPIADO TODO O CONTEUDO\n\n");
     
     rewind(fp);
     if((n=fread(data,sizeof(int),i+1,fp))!=i+1)
       printf("\n\nNAO FOI LIDO TODO O CONTETUDO\n");
     
     for(i=0;i<(n-3);i=i+3)
      printf("%d.%d.%d\n",data[i],data[i+1],data[i+2]);
     fclose(fp);
     system("pause");
}

PS:Peço esculpa por não ter dividido o programa em funções

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Localhost

Podias ter posto todas as dúvidas num tópico em vez de andares aos bocados.

Quanto ao problema.

→ Nunca utilizes a função gets.

→ Aquele primeiro for é inútil, podia ter sido substituído por um while.

→ Estás a escrever no ficheiro fora do for, faz o seguinte, lês e guardas logo no ficheiro.

→ Por último, utiliza uma matriz e não um array, é mais simples de se trabalhar, neste caso.

Quanto a não dividires por funções, o problema é teu, tu é que vais ler o código mais tarde :thumbsup:


here since 2009

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.