c语言如何将将结构体输入输出文件
时间: 2024-12-24 18:28:17 浏览: 15
在C语言中,将结构体输入输出到文件通常涉及到文件操作函数如`fopen`, `fwrite`, 和 `fclose`。以下是基本步骤:
1. 定义结构体:
```c
struct MyStruct {
int num;
char str[50];
};
```
2. 打开文件:
```c
FILE *fp; // 文件指针
if ((fp = fopen("data.txt", "w+b")) == NULL) {
perror("Failed to open file");
exit(1);
}
```
这里使用"w+b"模式表示写入二进制文件。
3. 将结构体转换为二进制并写入文件:
```c
struct MyStruct data = {42, "Hello"};
// 写入数据
fwrite(&data, sizeof(struct MyStruct), 1, fp);
```
`fwrite`函数用于向文件写入指定大小的数据块。
4. 读取文件内容:
```c
if (fseek(fp, 0, SEEK_SET)) { // 移动文件指针到开头
perror("Seek failed");
fclose(fp);
exit(1);
}
struct MyStruct loaded_data;
fread(&loaded_data, sizeof(struct MyStruct), 1, fp);
printf("Read from file: num = %d, str = %s\n", loaded_data.num, loaded_data.str);
```
使用`fseek`定位到开始,然后读取结构体。
5. 关闭文件:
```c
fclose(fp);
```
阅读全文