有五个学生,每个学生有三门课的成绩,从键盘上输入学生的学号,姓名,三门课成绩,把它们存放到磁盘文件中,并从该文件中能读出显示。 #include <stdio.h> #include <stdlib.h> struct student { int number; char name[20]; int score[3]; } stud[5]; void save() { FILE *fp; int i; if (( fp = fopen( "student.dat", "wb" )) == NULL ) { printf( "can not open file\n" ); exit( 0 ); } for ( i = 0; i < 5; i++ ) { fwrite(&stud[i],sizeof(struct student),1,fp); } fclose( fp ); } void load() { } int main() { int i, j; for ( i = 0; i < 5; i++ ) { printf( "\ninput %d student's number: ", i + 1 ); scanf( "%d", &stud[i].number ); printf( "\ninput %d student's name: ", i + 1 ); scanf( "%s", stud[i].name ); printf( "\ninput %d student's score: ", i + 1 ); for ( j = 0; j < 3; j++ ) { scanf( "%d", &stud[i].score[j] ); } } save(); load(); }
时间: 2024-02-14 20:10:45 浏览: 91
好的,这是一个C语言程序,用于存储和读取五个学生的学号、姓名和三门课成绩。程序中包含了两个函数:save和load。save函数用于将学生信息保存到磁盘文件中,load函数用于从磁盘文件中读取学生信息并显示出来。目前load函数还没有实现,需要你来完成它。具体的程序实现如下:
```c
#include <stdio.h>
#include <stdlib.h>
struct student
{
int number;
char name[20];
int score[3];
} stud[5];
void save()
{
FILE *fp;
int i;
if (( fp = fopen( "student.dat", "wb" )) == NULL )
{
printf( "can not open file\n" );
exit( 0 );
}
for ( i = 0; i < 5; i++ )
{
fwrite(&stud[i],sizeof(struct student),1,fp);
}
fclose( fp );
}
void load()
{
FILE *fp;
int i;
if (( fp = fopen("student.dat", "rb")) == NULL)
{
printf("can not open file\n");
exit(0);
}
for (i = 0; i < 5; i++)
{
fread(&stud[i], sizeof(struct student), 1, fp); // 读取文件中的学生信息
printf("number: %d\nname: %s\nscore: %d %d %d\n", stud[i].number, stud[i].name, stud[i].score[0], stud[i].score[1], stud[i].score[2]); // 显示读取的学生信息
}
fclose(fp);
}
int main()
{
int i, j;
for ( i = 0; i < 5; i++ )
{
printf( "\ninput %d student's number: ", i + 1 );
scanf( "%d", &stud[i].number );
printf( "\ninput %d student's name: ", i + 1 );
scanf( "%s", stud[i].name );
printf( "\ninput %d student's score: ", i + 1 );
for ( j = 0; j < 3; j++ )
{
scanf( "%d", &stud[i].score[j] );
}
}
save();
load();
return 0;
}
```
在这个程序中,load函数的实现比较简单,它只需要打开文件,循环读取文件中的学生信息,同时显示出来即可。需要注意的是,读取文件时使用的是fread函数,参数与保存文件时使用的fwrite函数相同,分别为:要读取的数据地址、每个数据项的大小、数据项个数和文件指针。
阅读全文