c语言修改文件内结构体内容
时间: 2023-10-22 08:03:19 浏览: 121
要在C语言中修改文件内结构体的内容,也可以使用文件指针和相关的文件操作函数来实现。以下是一个示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct student {
int id;
char name[20];
float score;
};
int main() {
FILE *fp;
char filename[] = "example.dat";
struct student stu;
int id_to_find = 1001;
fp = fopen(filename, "r+b");
if (fp == NULL) {
printf("Failed to open file %s\n", filename);
exit(EXIT_FAILURE);
}
// 查找指定id的学生记录
while (fread(&stu, sizeof(struct student), 1, fp) == 1) {
if (stu.id == id_to_find) {
// 修改学生成绩
stu.score = 90.0;
// 将文件指针移到该记录的位置
fseek(fp, -sizeof(struct student), SEEK_CUR);
// 写入修改后的学生记录
fwrite(&stu, sizeof(struct student), 1, fp);
// 退出循环
break;
}
}
// 关闭文件
fclose(fp);
return 0;
}
```
这个示例代码打开了一个名为 "example.dat" 的二进制文件,查找了其中id为 1001 的学生记录,并将其成绩修改为 90.0。然后将文件指针移到该记录的位置,再将修改后的学生记录写入文件中。最后关闭文件。需要注意的是,修改结构体内容时需要确保新内容的大小与原内容相同,否则可能会破坏文件的结构。
阅读全文