【发布时间】:2017-11-26 12:56:17
【问题描述】:
我试图读取一个大约 200 行的文件,然后将不同的行保存到一个结构中。结构如下:
struct person_data{
char name[20];
char lastname[30];
int age;
char country[3]
};
文件中的行设置为:
"Tom HALL" 32 ENG
"Ryan SMITH" 24 USA
所以我的问题是我不确定我应该如何读取该文件,并将信息放入结构中。我一直在尝试将文件保存到我的结构中并打印它,但结果是我的计算机上的目录路径和许多奇怪的符号在它崩溃之前。 我的代码是:
int main(){
FILE *fp;
fp = fopen("person.txt", "r");
person_data *person = malloc(sizeof(struct person_info));
int i = 0;
if(fp != NULL) {
while ( i < 200 ) {
fscanf(fp, "%[A-Za-z] %[A-Z] %d %[A-Z]",
person[i].name,
person[i].lastname,
&person[i].age,
person[i].country);
i++;
}
}
else{
perror(fp);
}
for (i = 0; i < 200; i++) {
printf("%s %s %d %s",
person[i].name,
person[i].lastname,
person[i].age,
person[i].country);
}
fclose(fp);
return 0;
}
我不确定出了什么问题,因此想问一下是否有人知道我做错了什么以及如何解决这个问题。当我运行程序时,它看起来像这样:
【问题讨论】:
-
你的国家太短了。您需要 4 个字符来存储 3 个字符字符串