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);
	} 
}