用c语言写 函数名称:writeFileForStu * 函数功能:向文件格式化写入数据 * 写入格式:共写入 num 行;每行写入一个 stu 型数据,每个成员变量之间用空格分隔 * 形式参数:struct stu * p,指向 stu 型一维数组首地址。该数组数据将被写入文件 * 形式参数:int num,一维数组元素个数,也即写入到文件的行数 * 形式参数:char filename[],待写入的文件路径及名称 * 形式参数:char mode[],文件使用方式 * 返 回 值:无
时间: 2024-02-03 11:02:36 浏览: 67
以下是用 C 语言编写的函数 `writeFileForStu` 的代码实现:
```c
#include <stdio.h>
struct stu {
int id;
char name[20];
int score;
};
void writeFileForStu(struct stu* p, int num, char filename[], char mode[]) {
FILE* fp = fopen(filename, mode);
if (fp == NULL) {
printf("Can't open file %s!\n", filename);
return;
}
for (int i = 0; i < num; i++) {
fprintf(fp, "%d %s %d\n", (p+i)->id, (p+i)->name, (p+i)->score);
}
fclose(fp);
}
```
函数 `writeFileForStu` 接收四个参数,一个是结构体 `stu` 的一维数组首地址,一个是数组元素个数,一个是待写入的文件路径及名称,最后一个是文件使用方式。函数首先使用 `fopen` 函数打开文件,如果打开失败则输出错误信息并返回。然后使用 `fprintf` 函数将数据按照指定格式写入文件中。在循环中,每次写入一行数据,将其保存到文件中。最后使用 `fclose` 函数关闭文件。函数没有返回值。
相关问题
C语言。*函数名称:stdinForStu *函数功能:从键盘输入数据,保存到指针 p所指向的数组中 *输入格式:共输入num行;每行输入一个stu型数据,每个成员变量之间用空格 分隔 *形式参数:struct stu*p,指向 stu型一维数组首地址 *形式参数:int num,一维数组元素个数 回值:无 */ void stdinForStu(struct stu *p, int num) //请编程实现本函数 /* *函数名称:writeFileForStu *函数功能:向文件格式化写入数据 *写入格式:共写入 num行;每行写入一个stu型数据,每个成员变量之间用空格 分隔 *形式参数:struct stu*p,指向 stu 型一维数组首地址。该数组数据将被写入文件 *形式参数:int num,一维数组元素个数,也即写入到文件的行数 *形式参数:char filename[],待写入的文件路径及名称 *形式参数:char mode[],文件使用方式*返回值:无 */ void writeFileForStu(struct stu *p, int num, char filename[],char mode[]){ //请编程实现本函数
下面是两个函数的代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
struct stu {
int id;
char name[20];
int score;
};
void stdinForStu(struct stu *p, int num) {
for (int i = 0; i < num; i++) {
scanf("%d %s %d", &p[i].id, p[i].name, &p[i].score);
}
}
void writeFileForStu(struct stu *p, int num, char filename[], char mode[]) {
FILE *fp = fopen(filename, mode); // 打开文件
if (fp == NULL) {
printf("Cannot open file %s!\n", filename);
exit(1);
}
for (int i = 0; i < num; i++) {
fprintf(fp, "%d %s %d\n", p[i].id, p[i].name, p[i].score); // 写入数据
}
fclose(fp); // 关闭文件
}
```
`stdinForStu` 函数从键盘输入数据,保存到指针 `p` 所指向的数组中。每行输入一个 `stu` 型数据,每个成员变量之间用空格分隔。形式参数 `p` 是指向 `stu` 型一维数组首地址的指针,形式参数 `num` 是一维数组元素个数。
`writeFileForStu` 函数向文件格式化写入数据。共写入 `num` 行;每行写入一个 `stu` 型数据,每个成员变量之间用空格分隔。形式参数 `p` 是指向 `stu` 型一维数组首地址的指针,该数组数据将被写入文件。形式参数 `num` 是一维数组元素个数,也即写入到文件的行数。形式参数 `filename` 是待写入的文件路径及名称,形式参数 `mode` 是文件使用方式。函数返回值为无。
C语言。一个学生结构体,如下所示。 struct stu{ int id;//学号 char name[20];//姓名 int age;//年龄 int score;//成绩 };。*函数名称:stdinForStu *函数功能:从键盘输入数据,保存到指针 p所指向的数组中 *输入格式:共输入num行;每行输入一个stu型数据,每个成员变量之间用空格 分隔 形式参数:struct stup,指向 stu型一维数组首地址 *形式参数:int num,一维数组元素个数 回值:无 */ void stdinForStu(struct stu p, int num) //请编程实现本函数 / *函数名称:writeFileForStu *函数功能:向文件格式化写入数据 *写入格式:共写入 num行;每行写入一个stu型数据,每个成员变量之间用空格 分隔 形式参数:struct stup,指向 stu 型一维数组首地址。该数组数据将被写入文件 *形式参数:int num,一维数组元素个数,也即写入到文件的行数 *形式参数:char filename[],待写入的文件路径及名称 形式参数:char mode[],文件使用方式返回值:无 */ void writeFileForStu(struct stu *p, int num, char filename[],char mode[]){ //请编程实现本函数
下面是两个函数的代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
struct stu {
int id;
char name[20];
int age;
int score;
};
void stdinForStu(struct stu *p, int num) {
for (int i = 0; i < num; i++) {
scanf("%d %s %d %d", &p[i].id, p[i].name, &p[i].age, &p[i].score);
}
}
void writeFileForStu(struct stu *p, int num, char filename[], char mode[]) {
FILE *fp = fopen(filename, mode); // 打开文件
if (fp == NULL) {
printf("Cannot open file %s!\n", filename);
exit(1);
}
for (int i = 0; i < num; i++) {
fprintf(fp, "%d %s %d %d\n", p[i].id, p[i].name, p[i].age, p[i].score); // 写入数据
}
fclose(fp); // 关闭文件
}
```
`stdinForStu` 函数从键盘输入数据,保存到指针 `p` 所指向的数组中。每行输入一个 `stu` 型数据,每个成员变量之间用空格分隔。形式参数 `p` 是指向 `stu` 型一维数组首地址的指针,形式参数 `num` 是一维数组元素个数。
`writeFileForStu` 函数向文件格式化写入数据。共写入 `num` 行;每行写入一个 `stu` 型数据,每个成员变量之间用空格分隔。形式参数 `p` 是指向 `stu` 型一维数组首地址的指针,该数组数据将被写入文件。形式参数 `num` 是一维数组元素个数,也即写入到文件的行数。形式参数 `filename` 是待写入的文件路径及名称,形式参数 `mode` 是文件使用方式。函数返回值为无。
阅读全文