Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
fo_11

Ajustes ao programa

Recommended Posts

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

Share this post


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

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
Sign in to follow this  

×

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.