定义一个包含学生姓名、年龄和分数的结构体Student。 编写一个C程序,从文件students.txt中读取学生信息并输出到屏幕上。students.txt的格式如下: Alice 20 90 Bob 22 85 Charlie 21 88
时间: 2024-09-10 14:12:08 浏览: 62
首先,我们可以定义一个结构体`Student`,包含学生姓名、年龄和分数。然后,编写一个C程序,读取`students.txt`文件中的学生信息,并将其打印到屏幕上。下面是具体的实现步骤和代码示例。
首先,定义结构体`Student`:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义学生结构体
typedef struct {
char name[50];
int age;
int score;
} Student;
// 函数声明
void readAndPrintStudents(const char* filename);
int main() {
// 调用函数,从文件中读取并打印学生信息
readAndPrintStudents("students.txt");
return 0;
}
// 从文件中读取学生信息并打印到屏幕的函数实现
void readAndPrintStudents(const char* filename) {
FILE* file = fopen(filename, "r"); // 打开文件
if (file == NULL) {
perror("无法打开文件");
exit(EXIT_FAILURE);
}
Student student;
while (fscanf(file, "%s %d %d", student.name, &student.age, &student.score) == 3) {
printf("%s %d %d\n", student.name, student.age, student.score);
}
fclose(file); // 关闭文件
}
```
在这个程序中,我们首先定义了一个`Student`结构体,然后在`main`函数中调用了`readAndPrintStudents`函数。该函数尝试打开指定的文件,如果文件打开成功,则使用`fscanf`函数逐行读取数据,每次读取包括一个字符串(姓名),两个整数(年龄和分数),并使用`printf`函数打印出来。如果文件无法打开或读取过程中出现错误,则会打印错误信息并退出程序。
需要注意的是,这个程序假设`students.txt`文件存在并且格式正确。如果文件不存在或者格式不正确,程序可能会出现未定义的行为。
阅读全文