Ir ao conteúdo

Posts recomendados

Postado

Boa tarde galera,

 

Estou fazendo um trabalho para a faculdade sobre um programa de supermercado. Estou rodando o programa e está funcionando porém ao adicionar o nome do segundo produto ele está pulando a etapa. Já tentei de todas as formas resolver mas até o momento não consegui. 

 


 

#include <stdio.h>
#include <stdlib.h>
#define ARQ "produtos.txt"

typedef struct produto
{
int codigo;
char nome[30];
float limite;
}Produtos;


void print_menu()
{
printf("****************\n");
printf ("Sejam Bem Vindos - Mercado Anhanguera: \n");
printf("Digite o que deseja fazer:\n");
printf("0 - Sair do programa.\n");
printf("1 - Incluir  produto(s).\n");
printf("****************\n");
}


int main()
{
Produtos code,name,limit,dados[100]={{0}};

int opcao,i,q;
char resp;
FILE *arquivo,*arq;


if((arquivo = fopen(ARQ,"a+")) == NULL)
{
printf("Erro ao abrir arquivo!!!\n");
exit(1);
}
do{
print_menu();
scanf("%d",&opcao);
switch(opcao)
{
case 1:
printf("Digite a quantidade de produtos que deseja inserir:\n");
scanf("%d",&q);
for(i=0;i<q;i++){
code.codigo = i+1;
printf("Digite o nome do produto que deseja incluir:\n");
scanf("%s",name.nome);
printf("Digite o setor do produto:\n");
scanf("%d",&limit.limite);
printf("\n");
printf("%d %s %.2f\n",code.codigo,name.nome,limit.limite);
fprintf(arquivo,"%d %s %.2f\n",code.codigo,name.nome,limit.limite);
}
break;


}
}while(opcao != 0);


fclose(arquivo);
system("pause");
}

 

Já olhei e reli várias vezes porém não consigo identificar

WhatsApp Image 2019-06-04 at 13.10.35.jpeg

WhatsApp Image 2019-06-04 at 13.08.46.jpeg

WhatsApp Image 2019-06-04 at 13.08.31.jpeg

Postado

Espaço antes do %s na string de especificadores, e getchar depois do scanf:

scanf(" %s",name.nome);
getchar();


scanf("%d",&limit.limite);
getchar();

 

Postado

@isrnick boa tarde amigo, obrigado pelo seu tempo.

 

Coloquei aqui porém está com o mesmo erro. 

 

Após eu adicionar o nome e a categoria do produto ele está pulando a etapa, não deixando eu colocar o nome e a categoria do segundo produto.

 

image.thumb.png.deffa2a6d882259f581564076f20fe2f.png

 

 

Postado

No printf a string pede pro usuário digitar o setor do produto, mas no scanf tenta ler um número inteiro para o limite... Então acaba que você está digitando uma palavra mas o scanf espera um número.

Postado

@KXSY Sim, não deixa eu adicionar o nome e a categoria do produto. Eu adicionei o comando que vocês me sugeriram porém continua. 

 

 

adicionado 1 minuto depois

@isrnick Como ficaria então? 

 

 

adicionado 3 minutos depois

@isrnick Putz é verdade, se ao invés de eu colocar Fruta por exemplo e digitar 1, ele faz o passo normalmente

Postado

Outro problema é que na struct limite foi definido como float (%f) mas o scanf está com o especificador de tipo de int (%d).

 

14 minutos atrás, Lori15 disse:

@isrnick Como ficaria então?

 

Muda a pergunta para pedir o limite ao invés de um setor, e digite um número durante a execução do programa.

 

Ou então teria que mudar o scanf para ler uma string para guardar o nome do setor.

Postado

@KXSY Então na verdade na parte do setor ele está lendo como número e eu preciso que ele leia "Fruta" por exemplo. Se você colocar 1 por exemplo, ele vai e segue normal

adicionado 3 minutos depois

@isrnick Então mas o problema é que no enunciado do trabalho tem que ser exatamente nessa etapa, sendo nome e categoria. Eu pensei em deixar pré-definido os setores e ali colocaria apenas o número do setor selecionado mas não posso. Isso que está me pegando.

Postado

@KXSY trocaria o  

char nome[30]; por char fruta[TAMANHO_MAXIMO_FRUTA];

? é isso? Mas e se eu tivesse que adicionar um outro tipo de alimento? Carne por exemplo

adicionado 18 minutos depois

@isrnick Amigo, obrigado pela ajuda, consegui aqui! foi exatamente o que você e o outro amigo me colocou.

 

Agora não abusando mas existe algum programa que converta C++ em C?

 

Obrigado

Postado
27 minutos atrás, Lori15 disse:

Agora não abusando mas existe algum programa que converta C++ em C?

Não.

 

 

Baseado nas suas dúvidas percebi que não está entendendo muito do C, e fazendo buscas notei que seu código é basicamente o código deste post de 2008 de outro forum, modificado:

 

https://forum.scriptbrasil.com.br/topic/127654-programa-em-c-venda/

 

Além de não ser simples de alterar um código feito por outra pessoa para algo que sirva para seu propósito, fazer o programa do zero criaria muito menos erros, e você aprenderia muito mais.

Postado

@KXSY to aprendendo os dois. Ta difícil amigo, estou em pleno trabalho lutando pra resolver isso pra entregar hoje a noite kkk.

 

Na verdade esse código ele pegou de um site, que inclusive tem vários outros porém agora esqueci o nome.

 

Sobre o exercício o código errado foi o próprio professor que fez com o intuito de nós mesmos identificarmos.

 

pra você ter uma ideia estou desde manhã tentando resolver isso....estou ferrado! 

 

Sobre o que você mandou continua com o mesmo problema ainda ;( ele continua pulando a etapa pra adicionar o outro produto.

Postado
25 minutos atrás, KXSY disse:

realmente, como você achou isso?@isrnick

 

Só selecionei alguns pequenos trechos do código aqui do fórum, cliquei com o botão direito e mandei buscar o texto selecionado no google, apareceu resultados na terceiro trecho de código que marquei.

Postado

@KXSY putz nem me liguei cara, como faço isso então?  Esse que você mandou rodou direitinho porém não posso trocar, tem que ser esse mesmo. 

adicionado 4 minutos depois
1 minuto atrás, Lori15 disse:

@KXSY putz nem me liguei cara, como faço isso então?  Esse que você mandou rodou direitinho porém não posso trocar, tem que ser esse mesmo. 

 

Eu preciso arrumar isso, que ele me de a oportunidade para adicionar outro produto, no momento ele está pulando a pergunta do nome1.thumb.png.fd86faec3e30f82f91d185f7ff72ebbe.png

 

Postado

@KXSY eu apago a linha inteira? outra coisa quando rodo ele, ele pergunta pra eu digitar o nome do arquivo, o que seria isso? desculpe mas não entendi 

Postado

@KXSY o problema é que eu acho que não vou poder, porque quem passou aquele código foi o próprio professor. Eu posso levar os dois mas o problema é que ele vai me perguntar do seu e eu não vou saber explicar como eu fiz. 

 

Se você pudesse só ajeitar esse que eu mandei eu ficaria muito grato.

Pelo menos esse eu já estou mais familiarizado agora o outro não sei nem por onde começar, o que eu aprendi de códigos ainda é muito pouco pra chegar naquilo.

 

Postado

@KXSY tranquilo, eu vou tentar mais um pouco aqui mas sem chances...muito pouco tempo e outra, quase não sei nada de programação para conseguir arrumar isso. O professor vai ter que dar um desconto.

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