Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/141.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何计算平均值?_C++_Fstream_Ifstream - Fatal编程技术网

C++ 如何计算平均值?

C++ 如何计算平均值?,c++,fstream,ifstream,C++,Fstream,Ifstream,我被要求计算10名学生的平均分数。 首先,我能够从data.txt文件中读取和检索数据,如下所示: 编号名称Test1 Test2 Test3 1艾哈迈德58 97 83 2多拉78 76 70 3拉梅什85 75 84 4迈穆纳87 45 74 5罗伯特74 68 97 6库马尔77 73 45 7 Intan 56 23 27 8平74 58 18 9爱达育479895 10罗斯兰799878 然后我要计算每个学生的平均分,并确定分数 以下是我到目前为止所做的 #include <io

我被要求计算10名学生的平均分数。 首先,我能够从data.txt文件中读取和检索数据,如下所示:

编号名称Test1 Test2 Test3

1艾哈迈德58 97 83

2多拉78 76 70

3拉梅什85 75 84

4迈穆纳87 45 74

5罗伯特74 68 97

6库马尔77 73 45

7 Intan 56 23 27

8平74 58 18

9爱达育479895

10罗斯兰799878

然后我要计算每个学生的平均分,并确定分数

以下是我到目前为止所做的

#include <iostream>
#include <fstream>
#include <cstdlib>
#include <string>

using namespace std;

int main()

{
    ifstream inFile1;
    string temp;
    int line=0;

    inFile1.open("data.txt");
    if(inFile1.fail())
    {
        cout << "File cannot be opened" << endl;
        exit(1);
    }

    while(getline(inFile1, temp))
    {
        line++;
    }
    inFile1.close();

    return 0;
}
该程序应至少包含两个原型函数:平均值和等级。
这就是我被卡住的地方。

你可以在这里检查答案:

基本上,当您遍历文件行时,应该将临时字符串拆分为您感兴趣的标记。怎样一个选项是将getline与delimeter“”一起使用,或者查看std::noskipws流操纵器,或者简单地使用operator>>读取文件,具体取决于您的需求细节

如果我正确理解了您的案例,我会使用操作符>>获取学生的姓名,然后使用getlineinFile、gradesText进行阅读,直到行尾获取当前学生的所有分数

然后我将使用一个单独的函数将字符串拆分为一个等级向量。如何进行拆分您可以签入。这样,您就可以准备一个函数,比如vector splitconst string&line,char delim=''。在实现中,您可能应该使用std::stoi进行字符串到int的转换

之后,当您已经有一个合适的集合时,您可以使用以下公式计算平均值:

const double sum = std::accumulate(grades.begin(), grades.end(), 0.0);
const double gradesMean = sum / grades.size();

请不要发布包含代码的图片链接,使用代码示例工具将代码直接复制/粘贴到问题中。