Buscar

Embora fprintf( ) e fscanf( ) sejam a maneira mais fácil de ler e escrever tipos de dados nos mais diversos formatos, elas não são as mais eficient...

Embora fprintf( ) e fscanf( ) sejam a maneira mais fácil de ler e escrever tipos de dados nos mais diversos formatos, elas não são as mais eficientes em termos de tamanho de código resultante e velocidade. Assim, se a velocidade e tamanho são uma preocupação, deve-se dar preferência as funções fread( ) e fwrite( ). Para ilustrar o quão útil essa funções podem ser, o seguinte programa mantém uma lista de telefones em um arquivo em disco. Você pode inserir nomes e números ou verificar um número dado um nome. #include #include #include #include #include “biblioteca.c” //biblioteca com funções de tela void add_num (void); //protótipos de funções void consulta(void); int menu(void); void main(){ char opcao; do{ opcao = menu(); switch (opcao){ case ‘A’: add_num(); break; case ‘C’: consulta(); break; } }while (opcao != ‘T’) } int menu(void){ char ch; do{ printf (“(A)diciona, (C)onsulta, (T)ermina: ”); ch = toupper(getche()); printf(“
”); }while (ch != ‘T’ && ch != ‘A’ && ch != ‘C’); return(ch); } void add_num(void){ FILE *fp; Char nome[80]; int prefixo, num; if (fp = fopen(“fones.db”, “a”)) == NULL){ printf (“O arquivo da lista não pode ser aberto!
”); exit(1); } printf (“Informe o nome e o número: ”); fscanf (stdin, “%s%d%d”, nome, &prefixo, &num); fscanf (stdin, “%*c”); //remove o CR do buffer do teclado fprintf (fp, “%s %d %d”, nome, prefixo, num); fclose (fp); } void consulta(void){ FILE *fp; char nome[80], nome2[80]; int prefixo, num; if (fp = fopen(“fones.db”, “r”)) == NULL){ printf (“O arquivo da lista não pode ser aberto!
”); exit(1); } printf (“Nome? ”); gets (nome); //consulta um número while (!feof(fp)){ fscanf (fp, “%s%d%d”, nome2, &prefixo, &num); if (!strcmp(nome, nome2)){ printf (“%s: %d-%d
”, nome, prefixo, num); break; } } fclose(fp); } 8.14 APAGANDO ARQUIVOS: remove( ) A função remove( ) apaga o arquivo especificado. O seu protótipo é: int remove(char *nome_arquivo); A função retorna zero em caso de sucesso; não zero se falhar. 8.15 PROGRAMA EXEMPLO: MANIPULAÇÃO DE ARQUIVOS O programa a seguir demonstra como utilizar as funções para manipulação de arquivos binários em C. #include #include #include “biblioteca.c” //--------------------- Estrutura Global ---------------------- struct pessoa{ char nome[41]; char cpf[15]; char sexo; char fone[14]; char endereco[41]; char cidade[26]; char uf[3]; }; //--------------------- Variável Global ----------------------- FILE *f; //------------------ Sub-rotinas e Funções -------------------- void abrir_arquivo(){ f = fopen (“Cadastro.db”, “rb+”); //tenta abrir o arquivo //para leitura/escrita if (f == NULL){ //verifica se conseguiu abrir o arquivo? f = fopen (“Cadastro.db”, “wb+”); //Se não abriu, cria. } } //------------------------------------------------------------- void limpa(){ char resposta; clrscr(); printf (“* * * L I M P A R A R Q U I V O * * *
”); printf (“Confirma Limpeza do Arquivo (S/N): ”); resposta = toupper(getche()); if (resposta == 'S'){ fclose(f); remove (“Cadastro.db”); 120 abrir_arquivo(); } } //------------------------------------------------------------- void exclui(){ struct pessoa reg; int i; char resposta; clrscr(); printf (“* * * E X C L U


Essa pergunta também está no material:

Faculdade_de_Ciencias_Aplicadas_de_Casca (1)
154 pág.

Ciências Aplicadas Universidade Estácio de SáUniversidade Estácio de Sá

💡 1 Resposta

User badge image

Ed Verified user icon

Desculpe, mas sua pergunta está incompleta. Você precisa publicar uma nova pergunta.

0
Dislike0

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

✏️ Responder

SetasNegritoItálicoSublinhadoTachadoCitaçãoCódigoLista numeradaLista com marcadoresSubscritoSobrescritoDiminuir recuoAumentar recuoCor da fonteCor de fundoAlinhamentoLimparInserir linkImagemFórmula

Para escrever sua resposta aqui, entre ou crie uma conta

User badge image

Outros materiais