Não sei se é isto q queres mas pode ser que ajude void listar_cat()
{
char cat[30];
int enc=0;
FILE *fp;
fp=fopen("produtos.bin","rb");
if(fp==NULL)
{
printf("Erro Fatal! A sair da Aplicacao\n");
exit(1);
}
fflush(stdin);
printf("Insira a Categoria a Listar: ");
gets(cat);
fflush(stdin);
fread(&m,sizeof m,1,fp);
while(!feof(fp) && !enc)
{
if(!strcmp(m.cat,cat))
enc=1;
else
fread(&m,sizeof m,1,fp);
}
if (enc)
{
system("cls");
printf("Listagem da Categoria %s\n",cat);
printf("==========================================\n\n");
printf("%-12s%-30s%-20s%-5s%-3s\n","Codigo","Nome Produto","Categoria"," preço"," Quantidade");//Cabeçalho da listagem
while(fread(&m,sizeof(m),1,fp)==1)
{
if (strcmp(m.cat,cat)==0)
printf("%-12d%-30s%-20s%-5.2f %-3d\n",m.cod_barras,m.nome,m.cat,m.preco_venda,m.qtd);
}
fclose(fp);
}
}