Jump to content
Fórum Script Brasil
  • 0

Entrada de dados formatada ( AJUDA)


luketeiro

Question

Sou iniciante e estou com dificuldades para criar um programa que leia uma lista de compras.txt com as seguintes caracteristicas, Nome, Tipo de alimento ( L ou F) e preço.

Apos dar entrada nesse arquivo o programa deve ser capaz de descrever o total gasto com Legumes o total gasto com Frutas.

Modelo de lista

F Banana 3,00

L Tomate 2,15

L Batata 1,35

Total com frutas afoi 3,00.

Total com legumes foi 3,50.

Minha duvida é como programar essa leitura do arquivo.txt dividindo os precos.

Obrigado

Link to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 0

Olá,

Fiz um programa bem simples pra ajudar você.

Espero que você estude ele e pergunte se tiver dúvidas.

Pra funcionar você precisa fazer o seguinte

- GRAVAR AS QUATRO LINHAS ABAIXO NUM ARQUIVO COM NOME DE COMPRAS.TXT

- ESSE ARQUIVO DEVE ESTAR NA MESMA PASTA QUE O EXECUTAVEL.

- A PRIMEIRA LINHA é O HEADER QUE INDICA AS POSICOES ONDE OS CAMPOS

DEVE SER POSICIONADOS

- OS VALORES DEVEM SER SEPARADOS POR . (ponto) E não VIRGULA PARA FACILITAR

A CONVERSAO.

Abs


+ + +
F Banana 3.00
L Tomate 2.15
L Batata 1.35
[/codebox]

[codebox]
#include <stdio.h>
#include <math.h>
#include <conio.h>

void main(void)
{
char registro[36];
float totalFrutas, totalLegumes;
int ignoraHeader = 1;
FILE *fp = fopen("compras.txt", "r+t");
if (fp == NULL)
{
puts("Erro - Arquivo invalido");
return;
}

totalFrutas = totalLegumes = 0.00;
while (1)
{
if (fgets(registro, 35, fp) == NULL)
break;
if (ignoraHeader)
{
ignoraHeader = 0;
continue;
}
printf("%s", registro);
if (registro[0] == 'F')
totalFrutas += atof(registro+27);
else if (registro[0] == 'L')
totalLegumes += atof(registro+27);
}
printf("------------------------------\n");
printf("Total de Frutas.: %6.2f\n", totalFrutas);
printf("Total de Legumes: %6.2f\n", totalLegumes);
printf("------------------------------\n");

getch();
}

Link to comment
Share on other sites

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...