访问名称空间中的静态数组,返回零

从下面的代码中可以看到,我有一个带有几个静态函数和一个静态2D浮点数组的名称空间。我的问题是第二个函数的返回值:当它应该返回1.16时返回0(值“系数”)。

我已逐步通过,“系数”始终具有正确的值,即使在自动模式下,系数[one * 2] [two]的值也是正确的。从文件读取没有错误。我要传递的材料均为6(橡胶),因此它不会超出数组的范围。

请帮忙!它让我和一个伙伴都陷入了困境。 (PS:对于怪异的缩进感到抱歉)

enum Material
{
    ICE = 0, 
    GLASS = 1, 
    CONCRETE = 2, 
    WOOD = 3,
    METAL = 4,
    SMOOTH_METAL = 5, 
    RUBBER = 6
};


 namespace Materials
    {
    static float coefficients[14][7];

    static void ReadFrictionCoefficientsFromFile()
    {
        std::ifstream file("FrictionCoefficients.csv");



if (!file.is_open())
    {
        std::cout << "ERROR: cannot open file FrictionCoefficients.csv" << std::endl;
        return;
    }

    std::string line;
    float val;
    int row = 0;
    while (std::getline(file, line))
    {
        std::stringstream ss(line);
        int col = 0;
        while (ss >> val)
        {
            Materials::coefficients[col][row] = val;
            if (ss.peek() == ',') ss.ignore();
            col++;
        }
        row++;
    }
    file.close();
    }


    static float GetCombinedStaticFriction(const Material m1, const Material m2)
    {
        int one = (int)m1, two = (int)m2;
        if (one > two)
        {
            one = (int)m2;
            two = (int)m1;
        }
        return coefficients[one * 2][two]; // -- ISSUE -- //
    }
}
评论