尝试使用C ++中的函数填充数组

时间:2014-02-25 17:30:19

标签: c++ arrays pass-by-value

所以,我正在尝试使用函数填充和打印一个小数组,但是我遇到了一些障碍。我的代码是:

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

using namespace std;

struct planes
{
    string name;
    int seats;
    int range;
    int weight;
};

int populate (planes planesArray[5])
{
    string name;
    int seats, range, weight, i;
    ifstream infile;
    infile.open("plane_data.txt");
    if (!infile)
    {
        cout << "File cannot be reached";
    }

    for (int i = 0; i < 4; i++){
        infile >> name;
        infile >> seats;
        infile >> range;
        infile >> weight;

    }

    infile.close();

}



int main() {

    planes planesArray[5];
    populate(planes planesArray[5]);

};

我在使用的不同迭代代码中遇到了大量错误。上面粘贴了这个,我得到了:

line 44: error: expected primary expression before (planesArray)

说实话,我有点失落。数组中有5个数据,我只是不知道如何使用我创建的函数可靠地将数据从文件中获取到数组中。

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:4)

int main() {
  planes planesArray[5];
  populate( planesArray); // this is how to call your function
}
^^^
note:  ; disappeared

当您使用某个参数调用函数时,您不会提及此参数的类型。

接下来,您将尝试实现您的功能。目前它对阵列参数没有任何作用,但我们不会提供现成的调整解决方案,而是在遇到一些具体问题时提供帮助。

答案 1 :(得分:2)

数组不适合在C ++中执行此类任务,尤其是如果您不熟悉该语言。使用std::vector - 并将“plane”重命名为“plane”,这更有意义(你的struct代表一个平面,而不是很多)。

int populate (std::vector<plane> &plane_vector)
{
  // ...
}

int main()
{
  std::vector<plane> plane_vector;
  populate(plane_vector);
}

这应该可以解决最明显的错误。