Início » Aulas » Aula 76 – Arquivos pt.11 – fread()

Aula 76 – Arquivos pt.11 – fread()

A função fread() permite a leitura de um bloco de bytes em arquivos, sendo usadas – preferencialmente – com arquivos binários. Seu protótipo é:

int fread(void *buffer, int bytes, int count,FILE *fp);
Anúncios

6 Comentários

  1. Marlon Filho disse:

    Dr. André Backes fiz este código baseado nas suas explicações.
    Mas na pesquisa de um conteudo dentro do aquivo não acha.
    A saida é sempre printf(“O nome nao foi encontrado…\n”);.

    poderia me ajudar…

    Agradecido.

    pesquisar()
    {
    int cont=0, tot=0;
    char resposta[2]=”N”;
    char nome2[30]=”n”;

    arqfunc = fopen (“ARQFUNC.txt”,”r”);
    printf(“\n\nPESQUISA DE ENTRADAS\n\n”);
    if (arqfunc == NULL)
    {
    printf(“Ocorreu um erro ao abrir o arquivo !”);
    printf(“Aperte algo para voltar ao menu…”);
    getch();
    }

    else
    {
    do{
    printf(“Digite o Nome…”);
    scanf(“%s”,&nome2);
    fread (&Funcionario,sizeof(struct Ficha),1, arqfunc);
    while (!feof(arqfunc) && Funcionario.nome != nome2 )
    {
    fread (&Funcionario,sizeof(struct Ficha),1, arqfunc);
    cont++;
    }

    if (feof(arqfunc))
    printf(“O nome nao foi encontrado…\n”);
    else
    {
    rewind (arqfunc);
    fseek(arqfunc,cont*(sizeof(struct Ficha)), SEEK_SET);
    fread(&Funcionario,sizeof(struct Ficha),1, arqfunc);
    printf(“Nome..: %s\n”,Funcionario.nome);
    printf(“Turno.: %s\n”,Funcionario.turno);
    printf(“Categoria.: %s\n”,Funcionario.categ);
    printf(“Numero de horas trablhadas.: %d\n”,Funcionario.numHoras);
    printf(“Valor da Hora.: %f\n”,Funcionario.vlhoratrab);

    }

    rewind(arqfunc);
    printf(“Procurar por outro nome? (s/n)… “);
    scanf(“%s”,&resposta);
    }while (strcmp(resposta,”s”)==0 || strcmp(resposta,”S”)==0);
    fclose(arqfunc);
    }

    return (0);
    }

  2. Gabriel S. disse:

    Olá,estou com uma duvida na edição de registros, me corrija se for preciso;tenho um arquivo binário,assim que mando abrir o ponteiro corrente fica no primeiro registro certo?Quando eu invoco o fread ele lê o registro na posição corrente e já pula para o próximo?se sim,então significa que se eu ler por exemplo o registro na posição 4 o ponteiro já vai está na posição 5 correto?Porém,quero editar o que está na posição 4 então como faço para o ponteiro voltar do 5 para o 4?pelo video vc disse em byte negativo,voltaria no arquivo…voce poderia me mostrar algum exemplo?

  3. Ola gostaria de saber como faço um programa que o usuario digite o caminho da pasta que esta os arquivos.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: