#include #include #define TAM 5 //tamanho do vetor usado como cadastro struct Aluno{ char nome[100]; int RA; }; typedef struct Aluno Aluno; void imprimeArquivo(); //Esta função imprime todo o conteúdo do cadastro em arquivo void alteraNome(int ra, char nome[]); //Dado um ra passado por parâmetro, a função altera o nome da pessoa com este ra char nomeArq[] = "alunos.bin"; //nome do arquivo que contém o cadastro int main(){ FILE *arq; Aluno cadastro[TAM] = { {"Joao", 1}, {"Batata", 2}, {"Ze", 3}, {"Malu", 4}, {"Ju", 5} }; arq = fopen(nomeArq, "w+b"); if(arq == NULL){ printf("Erro: Main!\n"); return 0; } fwrite(cadastro, sizeof(Aluno), TAM, arq); fclose(arq); //Após criado o arquivo aqui em cima, vamos alterá-lo //chamando a função alteraNome imprimeArquivo(); alteraNome(4,"Malu Mader"); imprimeArquivo(); } void imprimeArquivo(){ Aluno cadastro[TAM]; FILE *arq = fopen(nomeArq, "r+b"); //Note que usamos r e não w int i; if(arq == NULL){ printf("Erro: Imprime Arquivo!\n"); return; } fread(cadastro, sizeof(Aluno), TAM, arq); printf(" ---- Imprimindo Dados ----\n"); for(i=0; i