c语言结构体数组存入文件
时间: 2024-06-30 13:00:24 浏览: 219
在C语言中,结构体数组可以使用文件操作函数(如`fopen()`, `fwrite()`, 和 `fclose()`)来存储到磁盘文件中。下面是步骤和示例:
1. 定义结构体和结构体数组:
```c
#include <stdio.h>
typedef struct {
int id;
char name[50];
} Person;
Person people; // 假设我们有一个3个元素的人员信息数组
```
2. 创建文件并写入数据:
```c
FILE* file = fopen("people_data.txt", "w"); // 打开或创建文件,"w"表示写入模式
if (file == NULL) {
printf("Failed to open the file.\n");
return 1;
}
// 写入每个结构体成员
for (int i = 0; i < sizeof(people) / sizeof(people); i++) {
fprintf(file, "%d %s\n", people[i].id, people[i].name);
}
fclose(file); // 关闭文件
```
这里使用`fprintf()`函数写入整数和字符串,每个结构体元素之间用`\n`分隔。
3. 读取文件内容:
```c
file = fopen("people_data.txt", "r"); // 更改为"r"以读取模式
if (file == NULL) {
printf("Failed to open the file for reading.\n");
return 1;
}
char line[100];
Person loaded_people; // 初始化接收结构体的数组
while (fgets(line, sizeof(line), file)) {
// 解析行,假设格式是"id name"
sscanf(line, "%d %[^ ]", &loaded_people[i].id, loaded_people[i].name);
i++;
if (i == sizeof(loaded_people) / sizeof(loaded_people)) break; // 防止溢出
}
fclose(file);
```
4. 相关问题:
阅读全文