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