用c语言将文件中的数据读取后保存到结构体中
时间: 2024-05-06 19:18:08 浏览: 172
可以使用C语言中的文件操作函数来读取文件中的数据,并将读取到的数据保存到结构体中。
以下是一个示例代码:
```c
#include <stdio.h>
#define MAX_SIZE 100
struct student {
int id;
char name[MAX_SIZE];
float score;
};
int main() {
struct student s[MAX_SIZE]; // 定义结构体数组
FILE *fp;
int i = 0;
fp = fopen("data.txt", "r"); // 打开文件
if(fp == NULL) {
printf("Failed to open file.\n");
return -1;
}
// 读取文件中的数据并保存到结构体数组中
while(fscanf(fp, "%d %s %f", &s[i].id, s[i].name, &s[i].score) != EOF) {
i++;
}
// 输出结构体数组中的数据
for(int j = 0; j < i; j++) {
printf("ID: %d, Name: %s, Score: %.2f\n", s[j].id, s[j].name, s[j].score);
}
fclose(fp); // 关闭文件
return 0;
}
```
上述代码中定义了一个`struct student`结构体,其中包含学生的ID、姓名和成绩。在`main()`函数中,首先定义了一个`struct student`类型的数组`s`,然后使用`fopen()`函数打开名为`data.txt`的文件,并进行判断是否打开成功。接下来使用`fscanf()`函数读取文件中的数据,并将读取到的数据保存到结构体数组`s`中,最后使用循环输出结构体数组中的数据。
需要注意的是,结构体中的字符串类型需要使用字符数组来定义,并在读取时使用`%s`格式化符号,而不是使用`%c`。
阅读全文