6-2 有结构文件的读写1 分数 10 全屏浏览题目 切换布局 作者 龚雄兴 单位 湖北文理学院 学生类型:ST的类型定义如下: typedef struct student{ char name[10],id[10]; int gender; int age; double scored; } ST
时间: 2024-02-25 15:58:28 浏览: 110
好的,我已经明白了你的问题。关于有结构文件的读写,可以通过以下步骤实现:
1. 定义ST类型,并在程序中使用它。
2. 打开文件,读取或写入结构体数据。
3. 关闭文件。
下面是一个简单的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct student {
char name[10], id[10];
int gender, age;
double scored;
} ST;
int main() {
FILE *fp;
ST st, read_st;
// 写入数据到文件
fp = fopen("students.txt", "wb");
if (fp == NULL) {
printf("打开文件失败!\n");
exit(1);
}
st.gender = 1;
st.age = 20;
st.scored = 98.5;
strcpy(st.name, "小明");
strcpy(st.id, "1001");
fwrite(&st, sizeof(ST), 1, fp);
fclose(fp);
// 从文件读取数据
fp = fopen("students.txt", "rb");
if (fp == NULL) {
printf("打开文件失败!\n");
exit(1);
}
fread(&read_st, sizeof(ST), 1, fp);
printf("姓名:%s\n", read_st.name);
printf("学号:%s\n", read_st.id);
printf("性别:%d\n", read_st.gender);
printf("年龄:%d\n", read_st.age);
printf("成绩:%f\n", read_st.scored);
fclose(fp);
return 0;
}
```
在上面的代码中,我们定义了一个名为ST的结构体类型,并在程序中定义了一个ST类型的变量st和read_st。然后,我们通过打开文件、读取或写入结构体数据、关闭文件的方式进行了文件操作。
在写入数据时,我们使用了fwrite()函数将结构体数据写入文件。在读取数据时,我们使用了fread()函数从文件中读取结构体数据。
需要注意的是,结构体中的成员变量需要一个一个地写入或读取,而不能使用字符串和格式化输出等函数。此外,还需要注意文件打开模式,以确保文件能够正确地读写。
阅读全文