
joaojosecr
(usa Outra)
Enviado em 22/11/2019 - 01:34h
tenho que usar fread para ler um arquivo.dat e salvar os dados em um vetor de struct( que contem campos como nome, rua, bairro, etc), porem no arquivo.dat os campos são de tamanhos variáveis e separados por um carácter especifico. Como faço para limitar por esse caracter especifico e nao pelo tamanho do vetor?
Arquivo.dat:
DMZW Bianco S Laura Carvalho Martins Avenida Atl??ntica . JARDIM FILADELFIA Esp??rito Santo RNEHKò
Honda City Ben??cio Ribeiro Rua Aires Saldanha ESTACAO VILA OESTE Olho d????gua do Casado MAFCE : Chamonix Spyder 550 R Julia Alves Bueno Rua Bulh??es Carvalho $¦ CASA BRANCA
Arroio Trinta MSKVC$ Chevrolet Onix Carlo Martins Rua Hil??rio de Gouveia 9 POMPEIA Carir?? RJRQI- Chevrolet Classic Adolfo Melo Garcia Rua Maracana?? ê VILA CAFEZAL Arapoti AM
struct:
struct veiculo{
char placa[10];
char modelo[15];
char nome[20];
char rua[20];
int numero;
char cidade[20];
char bairro[20];
char estado[10];
};
coloquei esses valores nos vetores apenas para testar.
fread(&vet,sizeof(struct veiculo),10,arq);
estava usando a função assim, como aprendi, mas como os tamanhos dos arquivos sao variaveis nao esta danco certo, quando mando imprimir esta ficando td cortado, pela metade, etc.
resultado quando imprimo o primeiro registro:
placa: DMZW
modelo: nco S
nome: rvalho Martins
rua: enida Atl??ntica
numero: 1229214273
cidade: M FILADELFIA
bairro: ito Santo
estado: Honda City