Ir para conteúdo
Fórum Script Brasil
  • 0

Programa C para ler registros num arquivo


Israel Gonçalves

Pergunta

Olá pessoas!

Preciso resolver um problema envolvendo arquivo e registro, porém estou tendo dificuldade quanto a arquivos, não tenho noção de como fazer.

Ler um arquivo contendo registros no seguinte formato:

ID Descricao PrecoCompra PrecoVenda Qtdade

Onde:

i) ID é um inteiro representando o código do produto

ii) Descricao é uma string simples com o nome do produto

iii) PrecoCompra e PrecoVenda são, respectivamente, preço de compra e de venda dos produtos, em ponto flutuante

iv) Qtdade é um inteiro com a disponibilidade em estoque daquele produto.

O arquivo conterá no máximo 100 registros, sendo que a primeira linha contém a informação de quantos registros o arquivo contém.

Com base nas informações lidas calcule o lucro obtido em cada produto.

Ordene, em ordem crescente, os registros pelo preço de venda, para impressão em tela.

Imprima os registros (incluíndo o lucro) de acordo com a ordem estabelecida.

>>> Desenvolvi algumas coisas, mas tá bastante incompleto. Agradeço a quem puder ajudar

#include <stdlib.h>
#include <conio.h>
#include <stdio.h>

void main()
{
    FILE *arq;
    struct lista
    {
           int id;
           char descricao[20];
           int qtdade;
           float preco_compra, preco_venda;
    };    
    lista compra;           
    arq=fopen ("C:\\Users\\Israel\\Desktop\\listadecompra.txt", "w+");
    
    if( arq == NULL )
    {
        printf("Erro na abertura do arquivo.\n");
    }
    else {
         fread(&compra, sizeof(lista), 20, arq);
         }
         if(ferror(arq))
         {
                        printf("\nErro na leitura");
         }
         else {
              printf("\nLeitura realizada com sucesso.");
              }
              while(!feof(arq))
              {
                               printf ("\nCodido do produto: %d", compra.id);
                               printf ("\nNome do produto: %c", compra.descricao);
                               printf ("\nQuantidade do produto: %d", compra.qtdade);
                               printf ("\nPreco de compra: %2.2f", compra.preco_compra);
                               printf ("nPreco de venda: %2.2f", compra.preco_venda);
                               fread(&compra, sizeof(lista), 20, arq);
                               if(ferror(arq))
                               {
                                              printf("\nErro na leitura");
                                              }
                                              else{
                                                   printf("\nLeitura realizada com sucesso.");
                                                   }
              }
              fclose(arq);
              }
              
              getch();
              }

Editado por Israel Gonçalves
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...