Para finalizar esta série de exemplos sobre fwrite(); e fread(); apresento este programa
que mostra um vetor sendo carregado por um contador em um laço for, más não é imprimido
onde é criado, isto é, na função void Cria_Arquivo_Vetor( int Vet [ D ] ); Nesta função,
nosso vetor é gravado num arquivo bin por fwrite(); Já o arquivo, é lido por fread();
onde uma cópia é passada para o vetor Vet_or[]; sendo em seguida imprimido por printf();
onde primeiramente é percorrido por um laço for.
Veja duas imagens do programa em execução:
Veja abaixo o código do programa:
#include <stdio.h>
#include <conio.h>
#define D 100
void Janela5(){
int lin, col;system("color 7F");
for ( lin = 0; lin <= 36; lin++ ){
for ( col = 0; col <= 80; col++ ){
gotoxy( col, lin );
if ( lin == 2 ){textbackground(BLACK);printf( " ");}
if ( col == 1 ){textbackground(BLACK);printf(" ");}
if ( lin == 36 ){textbackground(BLACK);}
if ( col == 80 ){textbackground(BLACK);printf(" ");}
}
}textbackground( BLACK );
}
void inicio( ){ system ("title FWRITE E FREAD - VETOR EM ARQUIVO BIN");
int i;system("cls");do{Janela5();
textcolor(LIGHTRED);gotoxy(25,7);printf("FWRITE E FREAD - VETOR EM ARQUIVO BIN");
textcolor(YELLOW);gotoxy(25,10);printf("Programa desenvolvido por:");
textcolor(LIGHTCYAN);gotoxy(52,10);printf("Samuel Lima");
textcolor(LIGHTGREEN);gotoxy(34,12);printf("sa_sp10@hotmail.com");
textcolor(LIGHTBLUE);gotoxy(24,14);printf("DIGITE PARA SAIR OU PARA CONTINUAR ");
textcolor(LIGHTRED);gotoxy(32,14);printf("1");textcolor(LIGHTRED);gotoxy(47,14);printf("2");
gotoxy(41,16);
scanf("%d",&i);fflush(stdin);
if( i == 1 ){textcolor(LIGHTRED);gotoxy(35,20);printf ("MUITO OBRIGADO");Sleep(1800);exit(0);}
if( i == 2 ){system("cls"); return;}
else {textcolor(LIGHTRED);gotoxy(37,20);printf ("\aOPÇÃO ERRADA");Sleep(1800);system("cls");}
}
while(i);
}
void Cria_Arquivo_Vetor( int Vet [ D ] ){
FILE *arq;int p = 0, i;
for( i = 1; i <= D; i++ ){
Vet [ p ] = i;
p++;
}
if ( ( arq = fopen ("Arquivo.bin", "wb" ) ) == NULL ){
printf("Houve um erro na criação do arquivo");
getche();exit(1);
}
if ( fwrite ( &Vet, sizeof ( Vet ), 1, arq ) != 1 ){
printf("Houve um erro na gravação do arquivo");
getche();exit(1);
}
fclose(arq);
}
void Abre_Arquivo_Vetor( int Vet [ D ], int Vet_or [ D ] ){
FILE *arq;int i = 0;Janela5();
if ( ( arq = fopen("Arquivo.bin", "rb" ) ) == NULL ){
printf("Houve um erro na abertura do arquivo");
getche();exit(1);
}
if ( fread ( &Vet_or, sizeof ( Vet_or ), 1, arq ) != 1 ){
gotoxy(25, i + 11);printf("\aHouve um erro na leitura do arquivo");
getche();exit(1);
}
textcolor(LIGHTRED);gotoxy(24,3);printf("FWRITE E FREAD - VETOR EM ARQUIVO BIN");
gotoxy(5, i + 9);textcolor(LIGHTGRAY);
for( i = 0; i < D; i++ ){
printf(" %d ", Vet_or [ i ] );
}
fclose(arq);Sleep(1800);
textcolor(LIGHTRED);gotoxy(35,20);printf ("MUITO OBRIGADO");
getche();exit(0);
}
int main(){
int Vet [ D ], Vet_or [ D ];
inicio( );
Cria_Arquivo_Vetor( Vet );
Abre_Arquivo_Vetor( Vet, Vet_or );
}
Nenhum comentário:
Postar um comentário
Observação: somente um membro deste blog pode postar um comentário.