如何在c++中声明一个文本文件,并通过读取文件中的数据来显示学生的平均分数

How to declare a text file in c++ and display the average score of a student by reading the data from the file.?

本文关键字:文件 数据 读取 显示 平均分 声明 文本 一个 c++      更新时间:2023-10-16

我已经创建了一个名为(student.txt)的文件,并将以下信息放入文件中

Will Smith 99
Sarah Johnson 100 
Tim Howard 70 
Francesco Totti 95 
Michael Jackson 92

我想让用户输入文件名,一旦他们输入了文件名,我想通过从文件中读取数据来显示平均分数。

注意:文件中的每一行都包含学生的名字、姓氏和考试成绩

这是我到目前为止所做的,这只能显示文件中的内容请帮我申报文件名并显示学生的平均分数

#include <iostream>
#include <string>
#include <fstream>
using namespace std;
int main() {
    string studentFile;
    ifstream file("student.txt");
    if (file.is_open()) {
        while (getline(file,studentFile))
        {
            cout << studentFile << 'n';
        }
        file.close();
    }
system("pause");
return 0:
}

假设所有条目都将按照您指定的格式进行格式化,您可以实现它的某个版本(这并不是完美编写的,但它给出了大致的想法):

string line;
float total_grade = 0;
int num_grades = 0;
while (getline(file, line)) {
    //ignore everything up to score
    int number_position = line.find_last_of(" ") + 1;
    string grade_string = line.substr(number_position, line.length() - number_position);
    //turn string of score into number
    float grade = stof(grade_string);
    total_grade += grade;
    num_grades++;
}
float average_grade = total_grade / num_grades;

要在开始时从用户那里获得文件名,请使用

string studentfilename;
cout << "Enter student file name: ";
cin >> studentfilename;

祝你好运!