C语言 2、学生信息包含有学号、 姓名、 年龄、成绩及住址,从键盘输入n个学生的信息,然后存入一个磁盘文件student.txt中。
时间: 2023-09-12 07:07:09 浏览: 165
学生信息(c语言)
以下是一个实现上述功能的C语言程序:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_STUDENTS 100 // 最大学生数量
#define MAX_NAME_LEN 20 // 姓名最大长度
#define MAX_ADDR_LEN 50 // 住址最大长度
struct Student {
int id; // 学号
char name[MAX_NAME_LEN]; // 姓名
int age; // 年龄
int score; // 成绩
char addr[MAX_ADDR_LEN]; // 住址
};
int main() {
struct Student students[MAX_STUDENTS];
int n; // 学生数量
FILE *fp;
printf("请输入学生数量: ");
scanf("%d", &n);
if (n <= 0 || n > MAX_STUDENTS) {
printf("学生数量必须在1到%d之间\n", MAX_STUDENTS);
return 1;
}
// 输入学生信息
for (int i = 0; i < n; i++) {
printf("\n请输入第%d个学生的信息:\n", i + 1);
printf("学号: ");
scanf("%d", &students[i].id);
printf("姓名: ");
scanf("%s", students[i].name);
printf("年龄: ");
scanf("%d", &students[i].age);
printf("成绩: ");
scanf("%d", &students[i].score);
printf("住址: ");
scanf("%s", students[i].addr);
}
// 将学生信息写入文件
fp = fopen("student.txt", "w");
if (fp == NULL) {
printf("无法创建文件\n");
return 1;
}
for (int i = 0; i < n; i++) {
fprintf(fp, "%d %s %d %d %s\n", students[i].id, students[i].name, students[i].age, students[i].score, students[i].addr);
}
fclose(fp);
printf("\n学生信息已保存到student.txt中\n");
return 0;
}
```
程序先定义了一个 `Student` 结构体用于存储学生信息。然后通过 `scanf` 函数从键盘输入学生数量和每个学生的信息。最后将学生信息写入文件 `student.txt` 中,格式为每行一个学生的信息,各字段之间用空格分隔。
阅读全文