使用c++从文件中读取学生信息存入结构体
时间: 2024-05-06 10:20:51 浏览: 96
创建文件-读取文件
假设文件中的学生信息以以下形式存储:
```
张三 18 男
李四 19 女
王五 20 男
```
则可以使用以下代码将文件中的学生信息读入结构体中:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_STUDENT_NUM 100
struct student {
char name[20];
int age;
char gender[10];
};
int main() {
struct student students[MAX_STUDENT_NUM];
int num = 0;
FILE *fp = fopen("students.txt", "r");
if (fp == NULL) {
printf("Failed to open file.\n");
return 1;
}
while (fscanf(fp, "%s%d%s", students[num].name, &students[num].age, students[num].gender) != EOF) {
num++;
}
fclose(fp);
for (int i = 0; i < num; i++) {
printf("name: %s, age: %d, gender: %s\n", students[i].name, students[i].age, students[i].gender);
}
return 0;
}
```
在此代码中,我们首先定义了一个结构体 `student`,用来存储每一个学生的信息。然后定义了一个数组 `students` 来存储所有的学生信息,数组的大小为 `MAX_STUDENT_NUM`。接着我们打开了文件 `students.txt`,并使用 `fscanf` 函数从文件中读取学生的姓名、年龄和性别,并将这些信息存入结构体数组中。最后我们遍历结构体数组,输出所有学生的信息。
需要注意的是,本代码中没有对读取文件时的错误进行处理。在实际应用中,我们需要对文件读取错误进行处理,以保证程序的健壮性。
阅读全文