用c语言写一个可以从文本中把同专业的学生一起输出的代码
时间: 2024-03-16 21:45:06 浏览: 24
首先,我们需要读取文本文件并将其存储到内存中。然后,我们需要按照专业来分类学生,并将它们打印输出。
以下是一个简单的实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_STUDENTS 100
#define MAX_NAME_LEN 50
#define MAX_MAJOR_LEN 50
struct Student {
char name[MAX_NAME_LEN];
char major[MAX_MAJOR_LEN];
};
int main() {
struct Student students[MAX_STUDENTS];
int num_students = 0;
// 读取文件
FILE *fp = fopen("students.txt", "r");
if (fp == NULL) {
printf("无法打开文件\n");
return 1;
}
char line[100];
while (fgets(line, sizeof(line), fp)) {
char *name = strtok(line, ",");
char *major = strtok(NULL, ",");
if (name && major) {
strncpy(students[num_students].name, name, MAX_NAME_LEN);
strncpy(students[num_students].major, major, MAX_MAJOR_LEN);
num_students++;
}
}
// 关闭文件
fclose(fp);
// 按照专业分类并输出
char last_major[MAX_MAJOR_LEN] = "";
for (int i = 0; i < num_students; i++) {
if (strcmp(students[i].major, last_major) != 0) {
printf("\n%s专业:\n", students[i].major);
strcpy(last_major, students[i].major);
}
printf("%s\n", students[i].name);
}
return 0;
}
```
在这个例子中,我们假设输入文件的格式如下:
```
张三,计算机科学
李四,数学
王五,计算机科学
赵六,物理学
```
代码会将每个学生的姓名和专业存储在结构体数组中,然后按照专业分类并输出。输出结果如下:
```
计算机科学专业:
张三
王五
数学专业:
李四
物理学专业:
赵六
```
相关推荐
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)