已知一个学生的信息包括姓名和其成绩,要求依次输入5名学生信息, 将其信息存入文件"data",编写程序实现功能 [ 结构体数组\文件读写 ]
时间: 2024-03-15 08:45:45 浏览: 70
好的,下面是实现这个功能的C语言代码:
```c
#include <stdio.h>
typedef struct {
char name[20];
int score;
} Student;
int main() {
Student students[5];
FILE *fp;
int i;
// 依次输入5名学生信息
for (i = 0; i < 5; i++) {
printf("请输入第%d名学生的姓名和成绩:", i + 1);
scanf("%s %d", students[i].name, &students[i].score);
}
// 将学生信息存入文件"data"
fp = fopen("data", "wb");
fwrite(students, sizeof(Student), 5, fp);
fclose(fp);
return 0;
}
```
代码中使用了结构体数组来存储学生信息,使用了文件操作函数fwrite将学生信息写入文件"data",其中"wb"表示以二进制写入方式打开文件。如果要读取文件中的学生信息,可以使用fread函数,示例代码如下:
```c
#include <stdio.h>
typedef struct {
char name[20];
int score;
} Student;
int main() {
Student students[5];
FILE *fp;
int i;
// 从文件"data"中读取学生信息
fp = fopen("data", "rb");
fread(students, sizeof(Student), 5, fp);
fclose(fp);
// 输出学生信息
for (i = 0; i < 5; i++) {
printf("%s %d\n", students[i].name, students[i].score);
}
return 0;
}
```
注意,在写入和读取文件时,需要使用相同的方式打开文件。
阅读全文