#include #include #define TAM_MAX 3 typedef struct { int dia, mes, ano; double temp_min, temp_max; } t_vetor_dados; t_vetor_dados Medidas[TAM_MAX]; FILE *Arquivo; void exibe_vetor(void) { int cont; /* Exibe dados lidos */ for (cont = 0; cont < TAM_MAX; cont++) { printf ("Data: %d/%d/%d - ", Medidas[cont].dia, Medidas[cont].mes, Medidas[cont].ano); printf ("Temp. Minima: %.2lf - ", Medidas[cont].temp_min ); printf ("Temp. Maxima: %.2lf \n", Medidas[cont].temp_max ); } } void zera_vetor(void) { int cont; /* Zera todos os dados... para garantir que os dados originais foram apagados */ for (cont = 0; cont < TAM_MAX; cont++) { Medidas[cont].dia=0; Medidas[cont].mes=0; Medidas[cont].ano=0; Medidas[cont].temp_min=0.0; Medidas[cont].temp_max=0.0; } } void entra_vetor(void) { int cont; /* Entrada de Dados */ for (cont = 0; cont < TAM_MAX; cont++) { printf ("Dia : "); scanf ("%d", &Medidas[cont].dia ); printf ("Mes : "); scanf ("%d", &Medidas[cont].mes ); printf ("Ano : "); scanf ("%d", &Medidas[cont].ano ); printf ("Temp. Minima: "); scanf ("%lf", &Medidas[cont].temp_min ); printf ("Temp. Maxima: "); scanf ("%lf", &Medidas[cont].temp_max ); printf ("\n"); } } int main(int argc, char *argv[]) { int cont; int total; /* Entrada de Dados */ entra_vetor(); exibe_vetor(); system("PAUSE"); /* Salva em Disco - Arquivo Binário */ Arquivo = fopen("dados.bin","wb"); if (Arquivo == NULL) { printf(">> Erro no arquivo\n"); exit(0); } total = fwrite(Medidas, sizeof(t_vetor_dados), TAM_MAX, Arquivo); if (total != TAM_MAX) { printf(">> Erro na gravação\n"); exit(0); } fclose(Arquivo); printf ("> Arquivo gravado... \n"); /* Zera todos os dados... para garantir que os dados originais foram apagados */ zera_vetor(); printf ("> Dados da memoria apagados... \n"); /* Exibe dados lidos */ exibe_vetor(); /* Leitura do Arquivo Binário */ Arquivo = fopen("dados.bin","rb"); if (Arquivo == NULL) { printf(">> Erro no arquivo\n"); exit(0); } total = fread(Medidas, sizeof(t_vetor_dados), TAM_MAX, Arquivo); if (total != TAM_MAX) { printf(">> Erro na leitura\n"); exit(0); } fclose(Arquivo); printf ("> Arquivo lido... \n"); /* Exibe dados lidos */ exibe_vetor(); system("PAUSE"); return 0; }