保存学生信息输入要录入的学生人数录入所有学生的成绩和名字把信息s数组数据录入文件从文件中读取所有学生信息,输入学生人数为三
时间: 2024-02-21 18:58:38 浏览: 62
一个用C语言编写的学生信息管理系统,学生数据保存在文本文件中
好的,下面是一个示例代码,可以实现根据用户输入的学生人数,录入所有学生的成绩和名字,并将学生信息保存到文件中,然后从文件中读取所有学生信息并输出。
```c
#include <stdio.h>
typedef struct {
char name[20];
int score;
} Student;
void saveToFile(Student s[], int n)
{
FILE *fp;
int i;
fp = fopen("student.txt", "w"); // 以写入模式打开文件
if (fp == NULL) // 判断文件是否打开成功
{
printf("无法打开文件\n");
return;
}
for (i = 0; i < n; i++)
{
fprintf(fp, "%s %d\n", s[i].name, s[i].score); // 将学生信息写入文件中
}
fclose(fp); // 关闭文件
printf("学生信息已保存到文件中\n");
}
void readFromFile(Student s[], int n)
{
FILE *fp;
int i;
fp = fopen("student.txt", "r"); // 以读取模式打开文件
if (fp == NULL) // 判断文件是否打开成功
{
printf("无法打开文件\n");
return;
}
for (i = 0; i < n; i++)
{
fscanf(fp, "%s %d", s[i].name, &s[i].score); // 从文件中读取学生信息
}
fclose(fp); // 关闭文件
// 输出所有学生信息
printf("所有学生信息如下:\n");
for (i = 0; i < n; i++)
{
printf("姓名:%s,分数:%d\n", s[i].name, s[i].score);
}
}
int main()
{
int n;
int i;
Student s[100];
printf("请输入学生人数:");
scanf("%d", &n);
for (i = 0; i < n; i++)
{
printf("请输入第%d位学生的名字和分数:", i + 1);
scanf("%s %d", s[i].name, &s[i].score);
}
saveToFile(s, n); // 将学生信息保存到文件中
readFromFile(s, n); // 从文件中读取学生信息
return 0;
}
```
在上面的代码中,我们定义了一个 `Student` 结构体,包含学生的名字和分数。然后,我们定义了两个函数 `saveToFile()` 和 `readFromFile()`,分别用于将学生信息保存到文件中和从文件中读取学生信息。在 `main()` 函数中,我们首先让用户输入学生人数,然后使用一个循环语句,让用户逐一输入每位学生的名字和分数,最后调用 `saveToFile()` 函数将学生信息保存到文件中。接着,我们调用 `readFromFile()` 函数从文件中读取所有学生信息,并输出到屏幕上。需要注意的是,我们使用了 `fscanf()` 函数从文件中读取学生信息,其格式与 `scanf()` 函数类似。
阅读全文