Estou com sérios problemas... fiz um programa que controla uma lanchonete e a minha função tem como objetivo fazer o pedido do cliente: busca se há produto sufciente no estoque, decrementa uma unidade do produto no estoque, altera a struct do produto e grava o restante dados do pedido... Mas quando eu dou o fwrite para gravar o pedido ele altera o struct arquivo tmb...
Pergunta
fiodha
Estou com sérios problemas... fiz um programa que controla uma lanchonete e a minha função tem como objetivo fazer o pedido do cliente: busca se há produto sufciente no estoque, decrementa uma unidade do produto no estoque, altera a struct do produto e grava o restante dados do pedido... Mas quando eu dou o fwrite para gravar o pedido ele altera o struct arquivo tmb...
abaixo a linha q me causa problema
void opcao2 (struct pedido person,struct produto produt) {
int alt=1;
int existe = 0;
system ("cls");
char prod[50];
getchar();
printf ("Digite o pedido do cliente a ser pesquisado no estoque: ");
gets (prod);
fseek( arq, 0, SEEK_SET );
while(fread( &produt, sizeof( struct produto ), 1, arq )) {
if (strcmp(prod,produt.nomepro) == 0) {
if (produt.estoque > 0) {
existe=1;
person.valor=produt.valor;
produt.estoque--;
printf ("Produto encontrado.\n");
system ("pause");
system ("cls");
break;
}
}
if (existe != 1) {
alt++;
}
}
if (existe==1) {
strcpy(person.prod,prod);
printf ("Digite o nome do cliente: ");
gets (person.nomecli);
fseek( arq, 0, SEEK_END );
// fwrite( &person, sizeof( struct pedido ), 1, arq ); COM ESSA LINHA DA PAU, SEM ESSA LINHA FUNCIONA CERTINHO
fseek( arq,(alt-1)*sizeof( struct produto ),SEEK_SET );
fwrite( &produt,sizeof( struct produto ),1, arq );
}
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.