C语言编码。typedef struct student{ char sno[SNOLENGTH];//学号 char name[NAME_LENGTH];//姓名 int score[COURSE_NUMBER]; //课程成绩数组 float average;//所有课程的平均成绩 三门课程成绩和平均成绩。 }STU;。*函数名称:writeFile *函数功能:将指针p所指向的数组的所有元素值写入到二进制文件中 *形式参数:struct student型指针,p指向结构体数组的首地址 *形式参数:int型,rows 为结构体数组长度 *形式参数:一维字符数组,filename 为二进制文件路径及名称 *形式参数:一维字符数组,mode为文件打开模式 *返回值:int型,若打开文件失败,返回-1;否则,返回成功写入到文件的数据块个数 */ int writeFile(STU *p, int rows, char filename[], char mode[])。写出代码
时间: 2024-02-13 16:02:11 浏览: 78
下面是 writeFile 函数的代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define SNOLENGTH 20
#define NAME_LENGTH 20
#define COURSE_NUMBER 3
typedef struct student{
char sno[SNOLENGTH]; // 学号
char name[NAME_LENGTH]; // 姓名
int score[COURSE_NUMBER]; // 课程成绩数组
float average; // 所有课程的平均成绩
} STU;
int writeFile(STU *p, int rows, char filename[], char mode[]) {
FILE *fp;
int i, ret;
if ((fp = fopen(filename, mode)) == NULL) {
printf("Cannot open file %s\n", filename);
return -1;
}
ret = fwrite(p, sizeof(STU), rows, fp);
if (ret != rows) {
printf("Write file failed\n");
return -1;
}
fclose(fp);
return ret;
}
```
该函数中使用了 fwrite 函数将结构体数组的数据写入二进制文件中,使用 fopen 函数打开指定的文件,使用 fclose 函数关闭文件。函数返回成功写入到文件的数据块个数,若打开文件失败则返回 -1。
阅读全文