Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

baxinha_RS

manipulação de arquivo

Recommended Posts

oi, to colocando meu codigo inteiro aqui ainda não finalizado, no cadastro de categoria preciso fazer a validação do codigo, para que não se repita, então criei uma função para isso, porém o programa está travando.

Alguém pode dar uma olhada e ver se encontram o erro?

 

Grata

 

#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <string.h>
#include <ctype.h>

#define TAM 25



int menu()
{
system("cls");
fflush(stdin);
int op;
printf("**************MENU DE OPERACOES ***************");
printf("\n\n1 - Cadastra a Categoria");
printf("\n2 - Cadastra o Produto");
printf("\n3 - Registra a Venda");
printf("\n4 - Lista a Venda");
printf("\n5 - Resumo por Categoria");
printf("\n6 - Fim");
printf("\nInforme a opcao: ");
scanf("%d",&op);
if (op > 6 || op <1) {
printf ("\t Opcao errada, escolha entre 1 e 6 !!");
getch();
}
return op;
}

typedef struct categoria{
int cod_categ;
char nome_cat[TAM];
}t_categoria;

typedef struct produto{
int cod_prod;
char nome_prod[TAM];
float preço;
int codcategoria;
}t_produto;

typedef struct venda{
int prod;
int cat;
float total;
}t_venda;

t_categoria categoria;
t_categoria RegCat;
t_produto produto;
t_venda venda;

int achou=0;



FILE *pArqCat, *pArqprod, *pArqVenda;

/*************************VALIDA CATEGORIA*************************************/

int valida_cat()
{
while(!feof(pArqCat))
{
if(categoria.cod_categ == RegCat.cod_categ)
{

achou = 1;
}
}
return achou;
}

/************************************************** ****************************/


/*************************CRIA ARQUIVO CATEGORIA*******************************/
void criaArqcat()
{
pArqCat = fopen("categoria","rb");
if(pArqCat == NULL)
{
pArqCat = fopen("categoria","wb"); 
if(pArqCat == NULL)
{
printf("Erro na abertura do arquivo!!");
system("pause > null");
}
} 
fclose(pArqCat); 
}
/************************************************** ****************************/


/********************INSERE DADOS DA CATEGORIA NO ARQUIVO**********************/ 
void inserecat()
{
int found=0;
char resposta

pArqCat = fopen("categoria","ab+");
do{
system("cls");

do{
printf("Informe o codigo: ");
scanf("%i",&categoria.cod_categ);

fread(&RegCat,sizeof(t_categoria),1,pArqCat);

found = valida_cat();

}while(categoria.cod_categ == 0 || found == 1); 

printf("\nInforme o nome: ");
fflush(stdin);
gets(categoria.nome_cat);
if(fwrite(&categoria, sizeof(t_categoria), 1, pArqCat) > 0)
{
printf("\nCategoria gravada com sucesso");
getch();
}
printf("\n\nNova categoria: S/N: ");
scanf("%c",&resposta;
}while((resposta== 'S') || (resposta== 's'));
fclose(pArqCat);

}
/************************************************** ****************************/

/*************************CRIA ARQUIVO PRODUTOS********************************/
void criaArqprod()
{
pArqprod = fopen("produto","rb");
if(pArqprod == NULL)
{
pArqprod = fopen("produto","wb"); 
if(pArqprod == NULL)
{
printf("Erro na abertura do arquivo!!");
system("pause > null");
}
} 
fclose(pArqprod); 
}
/************************************************** ****************************/


/********************INSERE DADOS PRODUTO NO ARQUIVO***************************/ 
void insereprod()
{
char resposta

pArqprod = fopen("produto","ab+");

do{
system("cls");
do{
printf("Informe o codigo: ");
scanf("%i",&produto.cod_prod);
}while(produto.cod_prod == 0);

printf("\nInforme o nome: ");
fflush(stdin);
gets(produto.nome_prod);
printf("\nInforme o preço: ");
scanf("%f",&produto.preço);

printf("\nInforme a categoria do Produto");
scanf("%d",&produto.codcategoria); 
if(fwrite(&produto, sizeof(t_produto), 1, pArqprod) > 0)
{
printf("\nCategoria gravada com sucesso!!");
getch(); 
}
printf("\n\nNova categoria: S/N: ");
scanf("%c",&resposta;
}while((resposta== 'S') || (resposta== 's'));
fclose(pArqprod);
}
/************************************************** ****************************/


/******************************BLOCO PRINCIPAL*********************************/ 

int main()
{
int opcao;

opcao= menu();
criaArqcat();
criaArqprod();
do{

fflush(stdin);
switch(opcao)
{
case 1: inserecat();

break;

case 2: insereprod();

break;


/*case 3: registra();
break;

case 4: exibe();
break;

case 6: exit(1);
break;*/ 
}
system("cls");
opcao=menu();

}while(opcao != 6);

getch();
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.