Ir ao conteúdo

Posts recomendados

Postado

quero escrever e ler em um arquivo binário porém quero que nas strings ocupe exatamente o tamanho da string digitada e não todo o espaço reservado escrendo esta sempre ocupando  espaços a mais do que deveria não sei o porque e também estou com problemas para ler apenas o tamanho certo de cada string digitada

struct Fornecedor {

	char cia[25];
	char cnpj[15];
	char tel[15];
	char email[40];
};  

struct Fornecedor fornecedores;

//para escrever no arquivo
void inputFornecedor(){
	system("clear");
	printf("Cadastro de fornecedores:");
	quebra_linha();
	int i;		
	char resp;
	FILE* f;
	f = fopen("teste.bin", "ab");
	do
	{
		preenche_fornecedor(&fornecedores);
		int len = strlen(fornecedores.cia);
		fwrite (&len ,sizeof(int),1,f);
		fwrite(&fornecedores.cia, sizeof(char), len, f);
		int len2 = strlen(fornecedores.cnpj);
		fwrite (&len2 ,sizeof(int),1,f);
		fwrite(&fornecedores.cnpj, sizeof(char), len2, f);
		int len3 = strlen(fornecedores.tel);
		fwrite (&len3 ,sizeof(int),1,f);
		fwrite(&fornecedores.tel, sizeof(char), len3, f);
		int len4 = strlen(fornecedores.email);
		fwrite (&len4 ,sizeof(int),1,f);
		fwrite(&fornecedores.email, sizeof(char), len4, f);
			
		printf("gostaria de cadastrar outro fornecedor (s/n) ? \n");
		getchar();
		scanf("%c",&resp);
		
	}while(resp =='s');
	fclose(f);
	system("clear");
	menu();
}

 

  • Amei 1

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!