Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
* Arquivos * Estruturas de dados armazenadas fora da memória principal do computador Memória secundária (HD, disquete etc); Maior quantidade de informação Uso futuro (persistência) Nome e caminho para identificação Arquivos * Arquivos Binários Composto por uma sequência de bits, da mesma forma como fica na memória principal (ex. programa executável). Arquivos * Arquivos Binários Orientado a bytes e não caracteres Abertura de um arquivo ponteiroarq = fopen(nomeexterno, modo); Modos de Abertura: b : Indica arquivo binário. Combinando: rb,wb ,ab,rb+, wb+ * Comandos de escrita: size_t fwrite(const void *ptr, size_t size, size_t count, FILE *f ); Escreve em f count elementos, cada um com tamanho size em bytes, do bloco de memória apontado por prt. Retorna número de elementos escritos. Comandos de leitura: size_t fread(void *ptr, size_t size, size_t count, FILE * f); Lê de f , count elementos, cada um com tamanho size em bytes, para o bloco de memória apontado por prt. Retorna número de elementos lidos. Arquivos Binários * main() { FILE *arq ; int vet[] = { 10 , 20, 30 }; int i; arq = fopen ("dados.bin", "wb"); fwrite (vet, sizeof(int) , 3, arq); fclose (arq); arq = fopen ("dados.bin", "rb" ); fread (vet, sizeof(int) , 3, arq); fclose( arq ) ; for ( i=0; i<3; i++) { printf( "%d ", vet[i]); } } Arquivos Binários * typedef struct { int numero; char nome[20]; float nota; } aluno; int main() { FILE *classe; aluno a[10], b[10]; int i; classe = fopen("alunos.dat", "ab+"); for(i = 0; i < 10; i++) { printf("\nDigite o numero do aluno a ser incluido "); scanf("%d",&a[i].numero); printf("\nDigite o nome do aluno a ser incluido "); scanf("%s",a[i].nome); printf("\nDigite a nota do aluno "); scanf("%f",&a[i].nota); } * fwrite(a, sizeof(aluno), 10, classe); fclose(classe); classe = fopen("alunos.dat", "ab+"); fread (b, sizeof(aluno), 10, classe); for(i = 0; i < 10; i++) { printf("\nAluno %d:\n", i + 1); printf("Numero do aluno: %d", b[i].numero); printf("\nNome do aluno: %s", b[i].nome); printf("\nNota do aluno: %f ", b[i].nota); } fclose(classe); } * * * * * *
Compartilhar