C语言将文件中的内读到结构体数组中
时间: 2024-09-24 22:14:19 浏览: 46
在C语言中,将文件内容读取到结构体数组中通常涉及到两个步骤:首先定义一个结构体类型,然后创建该结构体类型的数组,并使用`fread`函数从文件中逐条读取数据。
1. **定义结构体**:
假设有一个名为`Student`的结构体,包含姓名和年龄字段,可以像这样定义:
```c
typedef struct {
char name[50];
int age;
} Student;
```
2. **创建结构体数组**:
定义一个大小为`N`的`Student`数组,例如:
```c
const int N = 10; // 根据实际需要调整数组大小
Student students[N];
```
3. **打开并读取文件**:
使用`fopen`函数打开文件,如果文件不存在或者无法打开,则需要处理错误。然后使用`fread`函数按行读取文件内容并存储到结构体数组中,假设每行是一个学生的记录:
```c
FILE *fp = fopen("students.txt", "r"); // 打开文件名
if (fp == NULL) {
perror("Error opening file");
return -1;
}
for (int i = 0; i < N && fgets(students[i].name, sizeof(students[i].name), fp); i++) { // 读取直到文件结束或者达到数组大小
students[i].age = atoi(fgets(students[i].name + strlen(students[i].name), sizeof(students[i].name) - strlen(students[i].name), fp)); // 解析年龄
// 这里假设年龄是以整数形式紧跟在姓名后的
}
fclose(fp);
```
4. **检查文件操作结果**:
最后别忘了关闭文件指针,检查是否成功读取了所有数据。
阅读全文