Ir ao conteúdo

Posts recomendados

Postado

Estou com um problema que pensei ser simples. Ler dados num arquivo txt, os dados sempre terão tamanho fixo (ex. codigo tem 8 caracteres, cpf 14, nome 47...) e salvá-los numa struct.

1234 76543FULANO DE TAL ENDERECORUATAL BAIRROCENTRO CIDADEBH MG

...

...

...

...

#include <stdio.h>

struct dados {
int codigo[8];
char cpf[14];
char nome[47];
char endereco[50];
char bairro[20];
char municipio[20];
char uf[2];
};

typedef struct dados info;

main(){

FILE *arq;
char Linha[164];
char Linha2[6][164];
char *result;
info registro[6];
int i,j;
arq = fopen("FORN.txt", "rb");
if (arq == NULL){
printf("Problemas na abertura do arquivo\n");
return;
}
i=0;
while (!feof(arq)){
fgets(registro[i].codigo, 9, arq);
fgets(registro[i].cpf, 16, arq);
fgets(registro[i].nome, 49, arq);
fgets(registro[i].endereco, 51, arq);
fgets(registro[i].bairro, 21, arq);
fgets(registro[i].municipio, 21, arq);
fgets(registro[i].codigo, 3, arq);
i++
}
for(i=0;i<6;i++){
printf("\n%d\n", registro[0].codigo);
printf("%s\n", registro[0].cpf);
printf("%s\n", registro[0].nome);
printf("%s\n", registro[0].endereco);
printf("%s\n", registro[0].bairro);
printf("%s\n", registro[0].municipio);
printf("------%s\n", registro[0].uf);
fclose(arq);
}
}

Já tentei usando GETC, FGETS, FSCANF, FREAD, até consigo ler mas o problema é quando quero pegar a string que recebeu os valores e jogar na struct. Alguma ideia?

  • 6 anos depois...
Postado
Em 27/05/2012 às 12:17, KabalHRS disse:

Estou com um problema que pensei ser simples. Ler dados num arquivo txt, os dados sempre terão tamanho fixo (ex. codigo tem 8 caracteres, cpf 14, nome 47...) e salvá-los numa struct.

1234 76543FULANO DE TAL ENDERECORUATAL BAIRROCENTRO CIDADEBH MG

...

...

...

...

 

 

#include <stdio.h>

struct dados { 
	int codigo[8];
	char cpf[14];
	char nome[47];
	char endereco[50];
	char bairro[20];
	char municipio[20];
	char uf[2];
};

typedef struct dados info;

main(){ 

	FILE *arq;
	char Linha[164];
	char Linha2[6][164];
	char *result;
	info registro[6];
	int i,j;
	arq = fopen("FORN.txt", "rb");
	if (arq == NULL){
		printf("Problemas na abertura do arquivo\n");
		return;
	}
	i=0;
	while (!feof(arq)){
		fgets(registro[i].codigo, 9, arq); 
		fgets(registro[i].cpf, 16, arq); 
		fgets(registro[i].nome, 49, arq); 
		fgets(registro[i].endereco, 51, arq); 
		fgets(registro[i].bairro, 21, arq); 
		fgets(registro[i].municipio, 21, arq); 
		fgets(registro[i].codigo, 3, arq); 
		i++
	}
	for(i=0;i<6;i++){
	printf("\n%d\n", registro[0].codigo);
	printf("%s\n", registro[0].cpf);
	printf("%s\n", registro[0].nome);
	printf("%s\n", registro[0].endereco);
	printf("%s\n", registro[0].bairro);
	printf("%s\n", registro[0].municipio);
	printf("------%s\n", registro[0].uf);
	fclose(arq);
	}
}

 

Já tentei usando GETC, FGETS, FSCANF, FREAD, até consigo ler mas o problema é quando quero pegar a string que recebeu os valores e jogar na struct. Alguma ideia?

Já tentou usar a biblioteca string.h pra usar o fgets?

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!