Ir ao conteúdo

Posts recomendados

Postado

Boa tarde. Estou fazendo um código de Estoque onde tenho alguns arquivos txt. Em resumo: preciso pegar uma linha de arquivo onde estará organizado da seguinte forma:

[Nome da pizza] [ingrediente 1] [quantidade do ingrediente 1] .... [ingrediente n] [quantidade n].

Farei desta forma para que ENQUANTO tiver ingredientes eu colocar o nome e a quantidade em uma variável para que eu subtraia do arquivo de estoque. Obrigado desde já.

  • Obrigado 1
Postado

@Bruno César Oliveira Dias @Bruno César Oliveira Dias    se o arquivo estiver organizado assim :

nome_da_pizza | ingredientes_1   | quant_ingred_1 | ingrediente_2 | quant_ingred_2  

portuguesa     farinha_de_trigo       5 kg              oleo            5 litros
napolitana     farinha_de_trigo       5 kg              oleo            5 litros
calabresa      farinha_de_trigo       5 kg              oleo            5 litros
marguerita     farinha_de_trigo       5 kg              oleo            5 litros
quatro queijo  farinha_de_trigo       5 kg              oleo            5 litros
mussarela      farinha_de_trigo       5 kg              oleo            5 litros

então você pode usar o comando fgets para pegar uma linha inteira , e depois procurar um 
caractere de cada vez , na variável do fgets ,  pelo nome da pizza que será a primeira palavra e ir colocando os caracteres na variável nome_da_pizza , até encontrar um espaço , e  encontrando um espaço coloque o finalizador de string  "\0'    lá na variável , e continua procurando até encontrar um caractere que não seja um espaço , 
e pega todos os caracteres e coloca na variável  ingrediente_1 , e ali uma palavra está ligada na outra por underline para facilitar a procura , até encontra um espaço , e continua procurando até encontrar um caractere que não seja um espaço , e colocar na variável de quantidade_1 , e vai assim até o final da linha , que é o caractere newline  " \n " , aí repete tudo de novo até chegar ao final do arquivo , o  EOF  ,  " End Of File " , depois faça as subtrações e compare a quantidade de ingredientes , usando o comando if , e se for maior que zero é por que ainda tem desse ingrediente , aí grava no arquivo usando o comando fprintf ,      então faça seu código e poste aqui , para vermos como está e em que podemos ajudar   .

  • Curtir 1
  • Amei 1
  • 3 semanas depois...
Postado

@devair1010 Boa noite, seguindo sua sugestão esbarrei em mais 2 problemas:

Não estou conseguindo pegar o nome do ingrediente(na verdade ele puxar certo na primeira vez, porém na segunda ele já da bug e vem todo errado);

E o segundo é que não sei converter char  ou string (vetor de caracteres) para float. Se puder me ajudar agradeço, é para um trabalho na Faculdade e já não sei mais como resolver, Obrigado!! Código:

fgets(Linha,1024,arq);
		for(i=0;i<1024;i++)
		{
			if(Linha[i] == ' ' && (Linha[i+1] == ' ' || Linha[i+1] == NULL))
			{
				Linha[i] = '\0';
			}
		}
		for(i=0;i<30;i++)
		{
			SaborSalvo[i] = Linha[i];
		}
		c = Linha[30]; // primeiro caractere do ingrediente
		while(c != '\0',j++)//j = 30, j servira para apontar o caractere atual da linha
		{
				//comandos para pegar os valores do arquivo txt
			for(i=0;i<20;i++)
			{
				ingrediente[i] = Linha[j];
				j += 1;
			}
			printf("Ingrediente %s\n",ingrediente); //testar se pegou o Ingrediente
			
			j += 2; //pula 2 caracteres da linha, 1 para o espaço e o outro para apontar para o primeiro digito da quantidade
			
			//outro problema, Como converter Char para float?
			while(c != ' ' || c != '\0',i=0,i++)
			{
				c = Linha[j];
				QtddChar[i] = c;
				j+=1;
			}
			// Qtdd = QtddChar ?
			printf("Quantidade %s\n\n",QtddChar); // testar o que puxou como quantidade
			j+=1;
			// DescontarEstoque(ingrediente,Qtdd);
			c = Linha[j];

 

  • Obrigado 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...