读取txt文件 放入结构体中
时间: 2023-09-08 16:16:28 浏览: 138
假设txt文件中每一行的格式为"姓名 年龄 性别",可以定义一个结构体如下:
```c
typedef struct {
char name[20];
int age;
char gender[10];
} Person;
```
读取txt文件并将其放入结构体数组中的代码如下:
```c
#include <stdio.h>
int main() {
FILE *fp;
char filename[] = "person.txt";
fp = fopen(filename, "r");
if (fp == NULL) {
printf("Failed to open file: %s\n", filename);
return 1;
}
Person people[100]; // 假设txt文件中最多包含100个人
int count = 0;
while (fscanf(fp, "%s %d %s", people[count].name, &people[count].age, people[count].gender) != EOF) {
count++;
}
fclose(fp);
// 打印读取到的人员信息
for (int i = 0; i < count; i++) {
printf("Name: %s, Age: %d, Gender: %s\n", people[i].name, people[i].age, people[i].gender);
}
return 0;
}
```
其中,`fscanf()`函数可以按照指定的格式从文件中读取数据,并将其存储到相应的变量中。如果读取成功,`fscanf()`函数返回读取的变量个数,如果到达了文件结尾,则返回EOF。在上面的代码中,每次循环读取一行数据并将其存储到一个Person结构体变量中,然后将该变量存储到数组中。最终,程序会打印读取到的人员信息。
阅读全文