c语言格式化读取文件然后从键盘录入两名学生的信息,最后将上述信息格式化写入到文件。写入格式要求:将每个同学的信息写入到文件中的一行,每行中的各个数据之间以空格分隔。目前,已经完成了main函数的编写,请编程实现“stdinForStu”函数和“writeFileForStu”函数。
时间: 2024-03-03 09:48:17 浏览: 154
好的,这是一个比较典型的文件读写操作。下面是 `stdinForStu` 和 `writeFileForStu` 函数的实现,供你参考:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_NAME_LEN 20
#define MAX_LINE_LEN 100
typedef struct {
char name[MAX_NAME_LEN];
int age;
float score;
} Student;
void stdinForStu(Student *stu1, Student *stu2)
{
printf("请输入第1个学生的姓名、年龄和成绩,中间用空格分隔:\n");
scanf("%s %d %f", stu1->name, &stu1->age, &stu1->score);
printf("请输入第2个学生的姓名、年龄和成绩,中间用空格分隔:\n");
scanf("%s %d %f", stu2->name, &stu2->age, &stu2->score);
}
void writeFileForStu(Student *stu1, Student *stu2, const char *filename)
{
FILE *fp = fopen(filename, "w");
if (fp == NULL) {
printf("无法打开文件 %s\n", filename);
exit(1);
}
fprintf(fp, "%s %d %.2f\n", stu1->name, stu1->age, stu1->score);
fprintf(fp, "%s %d %.2f\n", stu2->name, stu2->age, stu2->score);
fclose(fp);
}
int main()
{
Student stu1, stu2;
stdinForStu(&stu1, &stu2);
writeFileForStu(&stu1, &stu2, "students.txt");
return 0;
}
```
这个程序首先定义了一个 `Student` 结构体,表示一个学生的基本信息,包括姓名、年龄和成绩。然后,`stdinForStu` 函数从键盘读入两个学生的信息,分别存储到 `stu1` 和 `stu2` 中。
最后,`writeFileForStu` 函数将这两个学生的信息写入到指定的文件中。注意,这里使用了 `fopen` 函数打开文件,如果打开失败,就会输出错误信息并退出程序。写入数据时,使用了 `fprintf` 函数,将每个学生的信息写入到一行中,各个数据之间用空格分隔。
完整的程序已经实现了文件读写操作,你可以根据自己的需要进行修改和扩展。
阅读全文
相关推荐


















