1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

[Ajuda]Guardar dados de uma estrutura num ficheiro

Discussão em 'Programação' iniciada por Patrick_maura, 29 de Maio de 2008. (Respostas: 3; Visualizações: 1277)

  1. Patrick_maura

    Patrick_maura Power Member

    Como faço para guardar os dados de uma estrutura num ficheiro?

    Código:
     struct dados{
            int finalidade;
            int destino_habitação;
            int garagem_parq;
            int localização;
            int condição_def;
        };
    
        struct dados dados_emprestimo(void){
            struct dados dad;
            printf("\nDados do emprestimo:\n");
            do{
                printf("Finalidade do Emprestimo (1-Compra, 2-Construção, 3-Obras)");
                scanf("%d",&dad.finalidade);
            }while(dad.finalidade<1 || dad.finalidade>3);
    
            do{
                printf("Destino da Habitacao (1-Habitacao Propria Permanente, 2-Habitacao secundaria, 3-Habitação para Arrendamento)");
                scanf("%d",&dad.destino_habitação);
            }while(dad.destino_habitação<1 || dad.destino_habitação>3);
    
            do{
                printf("Garagem/Parqueamento(1-Sim, 2-Nao)");
                scanf("%d",&dad.garagem_parq);
            }while(dad.garagem_parq<1 || dad.garagem_parq>2);
    
            do{
                printf("Localizacao do Imovel(1-Continente, 2-Regioes Autonomas)");
                scanf("%d",&dad.localização);
            }while(dad.localização<1 || dad.localização>2);
    
            do{
                printf("Tem condicao de deficiente e pretende um credito para deficientes(1-Sim, 2-Nao)");
                scanf("%d",&dad.condição_def);
            }while(dad.condição_def<1 || dad.condição_def>2);//ver se é E ou OU
    
        return dad;
        }
    
    Sei que se abre um ficheiro desta forma:
    Código:
    FILE*pf;
    pf=fopen("Emprestimo.TXT", "w");
    if(!pf){
        printf("O ficheiro não existe");
        exit(1);
    }
    Não sei é como guardar os dados no ficheiro.

    É melhor utilizar ficheiros de texto ou ficheiros binários?
     
    Última edição: 29 de Maio de 2008
  2. MPalhas

    MPalhas Power Member

    depois do fopen podes gravar no ficheiro por exemplo com o fprintf

    exemplo:
    fprintf(pf, "%d\n", x);

    os dois ultimos parametros funcionam exactamente da mesma maneira que no printf normal

    só mais uma coisa
    FILE*pf;
    pf=fopen("Emprestimo.TXT", "w");
    if(!pf){
    printf("O ficheiro não existe");
    exit(1);
    }
    pelo que puseste aqui leva a crer que não percebeste uma coisa. quando abres um ficheiro em modo write (w), se o ficheiro não existir ele é criado, e se existir é totalmente apagado, por issso a mensagem que puseste não faz muito sentido

    isso podia-se aplicar se tivesses aberto para leitura, assim convém pores uma coisa diferente tipo "Erro ao criar ficheiro"
     
  3. Patrick_maura

    Patrick_maura Power Member

    O fprintf é a mesma coisa que printf mas explica-me só mais uma coisa no fprintf tou a dizer é que aquele %d que está lá vai ser escrito para dentro do ficheiro pf não é?
     
  4. Baderous

    Baderous Banido

    Sim.
     

Partilhar esta Página