c语言向文件写入学生信息并读取(将学生信息写入文件c语言)

1. 写入学生信息到文件

C语言中,我们可以使用文件操作函数来实现向文件写入学生信息。首先,我们需要定义一个结构体来表示学生信息的数据类型。

```c
// 定义学生信息结构体
struct student {
char name[20];
int age;
char gender[10];
float score;
};
```

接下来,我们可以通过用户的输入来获取学生信息,并将其写入文件中。

```c
#include

int main() {
FILE *file;
struct student s;

// 打开文件,以写入的方式
file = fopen("students.txt", "w");

if (file == NULL) {
printf("无法打开文件。\n");
return 1;
}

printf("请输入学生姓名:");
gets(s.name);

printf("请输入学生年龄:");
scanf("%d", &s.age);

printf("请输入学生性别:");
gets(s.gender);

printf("请输入学生成绩:");
scanf("%f", &s.score);

// 向文件写入学生信息
fprintf(file, "姓名:%s\n", s.name);
fprintf(file, "年龄:%d\n", s.age);
fprintf(file, "性别:%s\n", s.gender);
fprintf(file, "成绩:%f\n\n", s.score);

// 关闭文件
fclose(file);

printf("学生信息已成功写入文件。\n");

return 0;
}
```

2. 从文件中读取学生信息

读取文件中的学生信息,我们可以使用相应的文件操作函数。首先,我们需要定义一个结构体数组来存储学生信息。

```c
#define MAX_STUDENTS 100

// 定义学生信息结构体
struct student {
char name[20];
int age;
char gender[10];
float score;
};
```

接下来,我们可以通过循环读取文件中的学生信息,直到文件结尾。

```c
#include

int main() {
FILE *file;
struct student students[MAX_STUDENTS];
int count = 0;

// 打开文件,以读取的方式
file = fopen("students.txt", "r");

if (file == NULL) {
printf("无法打开文件。\n");
return 1;
}

// 循环读取文件中的学生信息
while (count < MAX_STUDENTS && fscanf(file, "姓名:%s\n年龄:%d\n性别:%s\n成绩:%f\n\n", students[count].name, &students[count].age, students[count].gender, &students[count].score) == 4) { count++; } // 关闭文件 fclose(file); printf("成功读取 %d 个学生信息。\n", count); return 0;}```

3. 输出学生信息

一旦学生信息被成功读取到内存中,我们可以使用循环来输出学生信息。

```c
#include

int main() {
FILE *file;
struct student students[MAX_STUDENTS];
int count = 0;

// 打开文件,以读取的方式
file = fopen("students.txt", "r");

if (file == NULL) {
printf("无法打开文件。\n");
return 1;
}

// 循环读取文件中的学生信息
while (count < MAX_STUDENTS && fscanf(file, "姓名:%s\n年龄:%d\n性别:%s\n成绩:%f\n\n", students[count].name, &students[count].age, students[count].gender, &students[count].score) == 4) { count++; } // 关闭文件 fclose(file); printf("成功读取 %d 个学生信息。\n", count); // 输出学生信息 for (int i = 0; i < count; i++) { printf("学生%d:\n", i + 1); printf("姓名:%s\n", students[i].name); printf("年龄:%d\n", students[i].age); printf("性别:%s\n", students[i].gender); printf("成绩:%f\n\n", students[i].score); } return 0;}```

通过以上的代码,我们可以实现将学生信息写入文件,并能够从文件中读取并输出这些学生信息。这样的操作可以方便地将学生信息保存起来,以备后续的处理和分析。

本文来自投稿,不代表亲测学习网立场,如若转载,请注明出处:https://www.qince.net/cyuyanjb0.html

郑重声明:

本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。 若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。

我们不承担任何技术及版权问题,且不对任何资源负法律责任。

如遇到资源无法下载,请点击这里失效报错。失效报错提交后记得查看你的留言信息,24小时之内反馈信息。

如有侵犯您的版权,请给我们私信,我们会尽快处理,并诚恳的向你道歉!

(0)
上一篇 2023年7月29日 上午2:11
下一篇 2023年7月29日 上午2:11

猜你喜欢