c语言怎么把文件读入结构体
时间: 2023-09-27 10:05:00 浏览: 120
在 C 语言中,可以使用文件操作函数读取文件内容并将其存储到结构体中。以下是一个示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
struct student {
char name[20];
int age;
float score;
};
int main() {
struct student s;
FILE *fp;
fp = fopen("students.dat", "rb"); // 以二进制读取方式打开文件
if (fp == NULL) {
printf("Error opening file.\n");
exit(1);
}
while (fread(&s, sizeof(struct student), 1, fp) == 1) { // 从文件中读取结构体数据
printf("Name: %s\n", s.name);
printf("Age: %d\n", s.age);
printf("Score: %f\n", s.score);
}
fclose(fp); // 关闭文件
return 0;
}
```
在上面的示例代码中,首先定义了一个结构体 `student`,包含三个成员变量 `name`、`age` 和 `score`。然后在 `main` 函数中,定义了一个结构体 `s` 和一个文件指针 `fp`。接着使用 `fopen` 函数打开一个名为 `students.dat` 的文件,并指定以二进制读取方式打开。如果打开文件失败,则输出错误信息并退出程序。
在 `while` 循环中,使用 `fread` 函数从文件中读取结构体数据,并将其存储到结构体变量 `s` 中。`fread` 函数的第一个参数是指向结构体变量的指针,第二个参数是结构体的大小,第三个参数是要读取的结构体数量,第四个参数是文件指针。如果读取成功,`fread` 函数返回值为 1,否则返回值为 0。
最后使用 `fclose` 函数关闭文件。
阅读全文