Olá, fiz um trabalho parecido com esse, no meu caso era uma lista telefônica, usuário inseria nomes e telefones, depois faria uma consulta com aquele nome, segue o código:  void modo_consulta() {     FILE *pont;     char *str_result;     char nome_pesq[50];     char letra;     char opc;     int linha,x,t_struct=-1,erro=0;     struct consulta consultas[50];          pont = fopen("telefones.txt","r");     if(pont==NULL)     {         printf("Erro ao ler o arquivo, reinicie a aplicacao.");         exit(1);       }     else     {         printf("Para consultar um registro, digite o nome do contato:\r\n");         fflush(stdin);         gets(nome_pesq);         gets(nome_pesq);          for(linha=0,x=0;!feof(pont);x++)// LÊ O ARQUIVO E INSERE LINHA POR LINHA NA STRUCT 'CONSULTAS'.         {            letra=fgetc(pont);            if(letra!='\n')            {                 consultas[linha].contato[x]=letra;            }            else//Quando encontrar o '\n', insere na próxima linha da STRUCT.            {                 linha++;                 x=0;                 consultas[linha].contato[x]=letra;            }         }         for(x=0;t_struct!=0;x++)//Enquanto não chega na última linha.         {                 t_struct = strlen(consultas[x].contato);                 str_result = strstr(consultas[x].contato,nome_pesq);                 //Guarda na variavel toda a linha da STRUCT, em que o nome pesquisado foi encontrado.                 if(str_result!=NULL)//Só imprime na tela se a variável conter o contato pesquisado.                 {                         printf("\n%s",str_result);                         erro=1;                 }         }         if(erro==0)         {             printf("\r\n*Contato não encontrado\r\n");         }         printf("\nDeseja fazer outra consulta?(S/N)");         scanf("%c",&opc);         if(opc=='s' || opc=='S')         {                 modo_consulta();         }         else         {                 menu_principal();         }     }     fclose(pont); }    *Obs: Nesse algoritmo eu li todo o arquivo e salvei em um Struct, linha por linha, já que o nome e telefone era na mesmo linha, no seu caso você vai ter que diferenciar cada linha, para saber qual é o campo, uma idéia é inserir antes de cada campo um nº para identificar, por ex: 1 - 001 // Código da venda, voce saberia pelo nº 1 que é o campo Código, apenas uma idéia.