C++ 用户定义的函数来填充数组

C++ User defined function to populate an array

我只是用 cout 来检查函数是否正常工作。函数中的 cout 有效,输出为 17,这是文本文件中的第一个数字。但是main()函数中的cout输出0,这是为什么呢?

#include <iostream>
#include <fstream>
#include <cmath>
#include <iomanip>

using namespace std;

double arrayPop();

int main()
{
    double X[10];
    double Y[10];

    arrayPop();

    cout<<Y[0];

    return 0;
}

double arrayPop()
{
    string horAxis, vertAxis;

    ifstream input;
    input.open("lin_reg-2.txt");

    input>>horAxis;
    double X[10];
    for (int i = 0; i<10; i++)
    {
        input>>X[i];
    }

    input>>vertAxis;
    double Y[10];
    for (int i = 0; i<10; i++)
    {
        input>>Y[i];
    }

    cout<<Y[0]<<endl;
}

您需要将数组作为 参数 传递给方法 arrayPop()

那么你会得到这样的东西:

#include <iostream>
#include <fstream>

using namespace std;

void arrayPop(double X[], double Y[], const int size);

int main()
{
    const int size = 10;
    double X[size];
    double Y[size];

    arrayPop(X, Y, size);

    cout<<Y[0];

    return 0;
}

void arrayPop(double X[], double Y[], const int size)
{
    string horAxis, vertAxis;

    ifstream input;
    input.open("lin_reg-2.txt");

    input >> horAxis;
    for (int i = 0; i < size; i++)
    {
        input >> X[i];
    }

    input >> vertAxis;
    for (int i = 0; i < size; i++)
    {
        input >> Y[i];
    }

    cout<<Y[0]<<endl;
}

PS:我建议您阅读有关 Variable Scope in C++ 的内容。