【发布时间】:2020-01-05 18:01:38
【问题描述】:
我有一个程序可以读取文件并将其内容保存到结构中:
struct cadastro {
char cod_segurado[3];
char nome_segurado[50];
char seguradora[50];
char tipo_seguro[30];
};
在读取并保存结构成员 cod_segurado[3] 中的第一个字段后,当程序到达第二个字段时,它会同时保存在第一个和第二个字符中 nome_segurado[ 50] 结构的成员。为什么?
下面的代码显示了我是怎么做的:
while (j < quant_registros){
fread(®istro,sizeof(char),TAM_REG_ENTRADA,arquivo);
while(conta_caracteres < TAM_COD_SEGURADO){
if(registro[i] != '\0'){
cadastro[j].cod_segurado[k] = registro[i];
k++;
}
i++;
conta_caracteres++;
}
k = 0;
conta_caracteres = 0;
while(conta_caracteres < TAM_NOME_SEGURADO){
if(registro[i] != '\0'){
cadastro[j].nome_segurado[k] = registro[i];
k++;
}
i++;
conta_caracteres++;
}
j++;
i = 0;
k = 0;
conta_caracteres = 0;
}
所以,最后(例如),结构应该是这样的:
cod_segurado = '001Joao' //why saving Joao if size is 3?
nome_segurado = 'Joao'
seguradora = 'Example'
tipo_segurado = 'Example'
【问题讨论】:
-
if(registro[i] != '\0') { cadastro[j].cod_segurado[k] = registro[i];hmmm