Ir para conteúdo
Fórum Script Brasil
  • 0

Problema para escrever no arquivo


andre01

Pergunta

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();

}

 

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...