problema na void inputEstoque() está esta preenchendo o arquivo com vários 0000000, preciso de ajuda não sei o problema uma vez que o outro arquivo foi preenchido corretamente (void inputFornecedor() ) grato por qualquer ajuda ou apontamento de algum erro.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void menu();
void opcao_menu();
void visualizar_fornecedor();
void inputEstoque();
void visualizar_Estoque();
struct Fornecedor {
char cod[2];
char cnpj[15];
char cia[20];
};
struct Produto{
struct Fornecedor f;
char nome[20];
int qtd;
int custo;
int valorc;
int venda;
};
struct Fornecedor fornecedores;
struct Produto produtos;
void quebra_linha(){
printf("\n");
}
//preencher fornecedores
void preenche_fornecedor (struct Fornecedor *p){
fflush(stdin);
printf("\ncodigo do fornecedor: ");
scanf ("%s", p->cod);
fflush(stdin);
printf("\ninforme cnpj do fornecedor: ");
scanf("%s",p->cnpj);
fflush(stdin);
printf("\nnome da empresa: ");
scanf("%s",p->cia);
}
void preenche_produtos (struct Produto *p){
preenche_fornecedor(&(*p).f);
printf ("informe o produto p/ cadastrar no estoque: ");
//getchar();
scanf("%s",p->nome);
printf ("informe a quantidade da compra: ");
scanf("%d",&p->qtd);
printf("informe o preço unitario: ");
scanf("%d",&p->custo);
p->valorc=p->custo*p->qtd;
printf("valor da mercadoria no estoque %d: ",p->valorc);
p->venda = (p->valorc*1.4) - (p->valorc) ;
}
// cadastrar fornecedor
void inputFornecedor(){
system("clear");
struct Fornecedor fornecedores;
char resp;
FILE* f;
f = fopen("fornecedores.txt", "ab");
do
{
preenche_fornecedor(&fornecedores);
fwrite(&fornecedores, sizeof(struct Fornecedor), 1, f);
/*fwrite(&fornecedores.cnpj, sizeof(char), strlen (fornecedores.cnpj), f);
fwrite(&fornecedores.cia, sizeof(char), strlen (fornecedores.cia), f);*/
printf("gostaria de cadastrar outro fornecedor (s/n) ? \n");
getchar();
scanf("%c",&resp);
}while(resp =='s');
fclose(f);
system("clear");
menu();
}
void visualizar_fornecedor(){
system("clear");
struct Fornecedor fornecedores;
FILE* f;
f = fopen("fornecedores.txt", "rb");
while (fread(&fornecedores, sizeof(struct Fornecedor), 1, f)==1){
printf("---------------------------------------------");
quebra_linha();
printf("Codigo de registro: %s\n", fornecedores.cod);
printf("Cnpj: %s\n", fornecedores.cnpj);
printf("Empresa %s\n", fornecedores.cia);
printf("---------------------------------------------");
quebra_linha();
}
fclose(f);
getchar();
getchar();
menu();
}
void inputEstoque(){
char resp;
system("clear");
struct Produto produtos;
FILE* f;
f = fopen("estoque.txt", "ab");
do
{
preenche_produtos (&produtos);
fwrite(&fornecedores, sizeof(struct Produto), 1, f);
quebra_linha();
printf("gostaria de cadastrar outro produto (s/n) ? \n");
getchar();
scanf("%c",&resp);
}while(resp =='s');
fclose(f);
system("clear");
menu();
}