写出c语言代码。/*将指针p所指向的数组的所有元素值写入到二进制文件中 *形式参数:struct student型指针,p指向结构体数组的首地址 *形式参数:int型,rows 为结构体数组长度 *形式参数:一维字符数组,filename 为二进制文件路径及名称 *形式参数:一维字符数组,mode为文件打开模式 *返回值:int型,若打开文件失败,返回-1;否则,返回成功写入到文件的数据块个数 */ int writeFile(STU *p, int rows, char filename[], char mode[]); /*读取二进制文件并存储到指针p所指向的数组 *形式参数:struct student型指针,p指向结构体数组的首地址 *形式参数:int型,rows 为结构体数组长度 *形式参数:一维字符数组,filename为二进制文件路径及名称 *形式参数:一维字符数组,mode 为文件打开模式 *返回值:int型,若打开文件失败,返回-1;否则,返回从文件成功读取的数据块个数 */ int readFile(STU *p, int rows, char filename[], char mode[]);
时间: 2024-01-17 09:08:27 浏览: 118
下面是实现 writeFile 函数的 C 语言代码:
```
#include <stdio.h>
int writeFile(STU *p, int rows, char filename[], char mode[]) {
FILE *fp;
int count;
fp = fopen(filename, mode);
if (fp == NULL) {
return -1;
}
count = fwrite(p, sizeof(STU), rows, fp);
fclose(fp);
return count;
}
```
下面是实现 readFile 函数的 C 语言代码:
```
#include <stdio.h>
int readFile(STU *p, int rows, char filename[], char mode[]) {
FILE *fp;
int count;
fp = fopen(filename, mode);
if (fp == NULL) {
return -1;
}
count = fread(p, sizeof(STU), rows, fp);
fclose(fp);
return count;
}
```
需要注意的是,在调用这两个函数之前,需要先定义结构体数组并为其分配内存空间,例如:
```
STU *students;
students = (STU *)malloc(sizeof(STU) * rows);
```
其中 rows 为结构体数组的长度。
阅读全文