我只是使用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;
}
附言:我建议你阅读C++中的变量作用域。