Jump to content
Fórum Script Brasil
  • 0

Programa C para ler registros num arquivo


Israel Gonçalves

Question

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

Edited by Israel Gonçalves
Link to comment
Share on other sites

1 answer to this question

Recommended Posts

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...