#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; int main(int argc, char *argv[]) { 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"); } /* 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 ); } system("PAUSE"); /* Salva em Disco - Arquivo Binário */ Arquivo = fopen("dados.bin","wb"); if (Arquivo == NULL) { printf(">> Erro no arquivo\n"); exit(0); } for (cont = 0; cont < TAM_MAX; cont++) fwrite(&Medidas[cont],sizeof(t_vetor_dados),1,Arquivo); fclose(Arquivo); printf ("> Arquivo gravado... \n"); /* 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; } printf ("> Dados da memoria apagados... \n"); /* 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 ); } /* Leitura do Arquivo Binário */ Arquivo = fopen("dados.bin","rb"); if (Arquivo == NULL) { printf(">> Erro no arquivo\n"); exit(0); } cont=0; while (!feof(Arquivo)) { fread(&Medidas[cont],sizeof(t_vetor_dados),1,Arquivo); cont++; } fclose(Arquivo); printf ("> Arquivo lido... \n"); /* 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 ); } system("PAUSE"); return 0; }