定义一个课程结构体(成员有课程名字、上课时间以及总课时数),往文件写入三个课程变量后。通过 文件定位,读出第二门科目的信息,打印到屏幕上用c语言
时间: 2024-03-08 15:49:32 浏览: 21
好的,以下是代码实现:
```c
#include <stdio.h>
#include <string.h>
// 定义课程结构体
struct Course {
char name[20];
char time[20];
int total_hours;
};
int main() {
// 创建三个课程变量
struct Course course1, course2, course3;
// 给课程变量赋值
strcpy(course1.name, "数学");
strcpy(course1.time, "周一9:00");
course1.total_hours = 36;
strcpy(course2.name, "英语");
strcpy(course2.time, "周二14:00");
course2.total_hours = 40;
strcpy(course3.name, "物理");
strcpy(course3.time, "周三16:00");
course3.total_hours = 32;
// 打开文件,以二进制写入方式打开
FILE *fp = fopen("course.dat", "wb");
if (fp == NULL) {
printf("文件打开失败!\n");
return -1;
}
// 将三个课程变量写入文件
fwrite(&course1, sizeof(struct Course), 1, fp);
fwrite(&course2, sizeof(struct Course), 1, fp);
fwrite(&course3, sizeof(struct Course), 1, fp);
// 关闭文件
fclose(fp);
// 以二进制读取方式打开文件
fp = fopen("course.dat", "rb");
if (fp == NULL) {
printf("文件打开失败!\n");
return -1;
}
// 定位到第二门科目的信息
fseek(fp, sizeof(struct Course), SEEK_SET);
// 读取第二门科目的信息
fread(&course2, sizeof(struct Course), 1, fp);
// 打印到屏幕上
printf("第二门科目的信息为:\n");
printf("课程名字:%s\n", course2.name);
printf("上课时间:%s\n", course2.time);
printf("总课时数:%d\n", course2.total_hours);
// 关闭文件
fclose(fp);
return 0;
}
```
代码中,我们首先定义了一个结构体 `struct Course`,包含了课程名字、上课时间以及总课时数三个成员变量。接着,我们创建了三个课程变量,并给它们赋值。
然后,我们打开文件 `course.dat`,以二进制写入方式打开,并将三个课程变量分别写入文件中。写入完成后,我们关闭文件。
接着,我们再次打开文件 `course.dat`,以二进制读取方式打开,并通过 `fseek` 函数定位到第二门科目的信息。然后,我们使用 `fread` 函数读取第二门科目的信息,并打印到屏幕上。
最后,我们关闭文件,并结束程序的执行。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![c](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)