这段代码实现了从文本中读取出指定学号的学生信息并显示,文本文件存放格式是每一行对应一个学生信息,最后一行没有换行符。
时间: 2024-01-01 07:22:26 浏览: 80
该段代码可能是这样的:
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LEN 100 // 最大行长
#define MAX_STU_NUM 100 // 最大学生数
typedef struct Student {
char id[10];
char name[20];
int age;
char gender;
} Student;
int main() {
Student students[MAX_STU_NUM]; // 学生数组
char id[10]; // 待查找的学号
int i = 0, j, found = 0;
// 读取文件
FILE *fp = fopen("students.txt", "r");
while (fgets(students[i].id, 10, fp) != NULL) {
fgets(students[i].name, 20, fp);
fscanf(fp, "%d %c", &students[i].age, &students[i].gender);
i++;
}
fclose(fp);
// 查找学生
printf("Please input the student's id: ");
scanf("%s", id);
for (j = 0; j < i; j++) {
if (strcmp(id, students[j].id) == 0) {
printf("ID: %s\nName: %s\nAge: %d\nGender: %c\n", students[j].id, students[j].name, students[j].age, students[j].gender);
found = 1;
break;
}
}
if (!found) {
printf("No such student.\n");
}
return 0;
}
```
这段代码首先定义了一个结构体 `Student` 存储学生信息,包括学号、姓名、年龄和性别。然后定义了一个学生数组 `students` 存储所有学生信息,最多存放 `MAX_STU_NUM` 个学生。
接着打开名为 `students.txt` 的文本文件,读取其中的学生信息,存入 `students` 数组中。每个学生信息占据一行,其中学号和姓名分别占据一行,年龄和性别用空格隔开。
最后,程序要求用户输入待查找的学号,然后在 `students` 数组中查找该学号对应的学生信息并输出。如果找不到该学生,输出提示信息。
需要注意的是,该程序假设文本文件中最后一行没有换行符,因此最后一行的学生信息读取时需要特殊处理。
阅读全文