实现从文本中读取出指定学号的学生信息并显示,文本文件存放格式是每一行对应一个学生信息,最后一行没有换行符的c语言代码
时间: 2024-01-01 11:24:13 浏览: 45
可以使用C语言来实现这个功能。具体步骤如下:
1. 打开文件,逐行读取每个学生信息。
2. 将每个学生信息按照指定的分隔符(比如逗号)分割成若干个字段,并存储在一个结构体中。
3. 判断结构体中是否存在指定学号的字段,如果存在,则显示该学生信息并结束程序,否则继续读取下一个学生信息。
4. 如果读取完整个文件都没有找到指定学号的学生信息,则显示“未找到该学号对应的学生信息”。
下面是C语言代码实现:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100 // 假设每个学生信息的长度不超过100个字符
#define DELIMITER ',' // 假设每个字段之间使用逗号作为分隔符
struct student {
char id[20];
char name[20];
char gender[10];
// 其他字段同理
};
int main() {
FILE *fp;
char line[MAX_LEN];
struct student stu;
char *field;
int found = 0; // 标记是否找到指定学号的学生信息
fp = fopen("student.txt", "r");
if (fp == NULL) {
printf("打开文件失败\n");
return 1;
}
while (fgets(line, MAX_LEN, fp) != NULL) {
field = strtok(line, ",");
strcpy(stu.id, field);
field = strtok(NULL, ",");
strcpy(stu.name, field);
field = strtok(NULL, ",");
strcpy(stu.gender, field);
// 其他字段同理
if (strcmp(stu.id, "指定学号") == 0) {
printf("学号:%s\n", stu.id);
printf("姓名:%s\n", stu.name);
printf("性别:%s\n", stu.gender);
// 其他字段同理
found = 1;
break; // 找到了指定学号的学生信息,结束程序
}
}
fclose(fp);
if (!found) {
printf("未找到该学号对应的学生信息。\n");
}
return 0;
}
```
其中,`student.txt`是存放学生信息的文本文件,`指定学号`是你要查找的学生的学号。需要将代码中的这两个参数替换成实际的值。