嗨,这是我第一次在这里发帖,而且我对编码比较新,所以我遇到了很多问题。大部分时间我都可以自己学习如何修复错误,但现在我想我只是遇到了一个带有数组和结构的主要障碍。目前,编译时会给我
undefined reference to `buildArrays(std::string, int, int, int)'
问题是,每次我尝试修复"我都会遇到此错误。 main函数中的buildArray调用者,将字符串PlaName更改为结构中的char PlaName [25]播放器以某种方式工作,但不会更改错误。无论如何,我可以尝试更改代码,以便数组可能从一个函数调用到另一个函数?我查找过这个错误的大部分信息主要是关于链接器,它没有帮助。
顺便说一句,我的作业要求我从文件中创建一个数组,从函数中调用它,在main函数中使用该数组,然后在主函数中使用该数组。我不知道程序是否有效,因为我无法通过未定义的引用错误。这里的大部分程序都是:
using namespace std;
struct Players
{
string PlaName;
int PlaGoal;
int PlaAssist;
int Points;
};
int buildArrays( string, int, int, int);
void printArrays( string, int, int, int, int);
void sortArrays( string, int, int, int, int);
int main()
{
Players player;
buildArrays(player.PlaName,player.PlaGoal,player.PlaAssist,player.Points); //this is the error
cout<<"Chicago Blackhawks UNSORTED Report;";
}
int buildArrays( string playerNames[], int goals[], int assists[], int rating[] ) //this function's format is required for the homework
{
ifstream inFile;
inFile.open("hockey.txt");
if (inFile.fail())
{
cout<<"The hockey.txt input file did not open";
exit(-1);
}
while (inFile)
for(int i = 0; i <= 25; i++)
{
inFile >> playerNames[i]
>> goals[i]
>> assists[i]
>> rating[i];
cout<<playerNames[i]<<goals[i]<<assists[i]<<rating[i];
}
inFile.close();
return 0;
}
答案 0 :(得分:0)
问题似乎是你的buildArrays函数原型与你的函数定义不匹配。您的函数接受数组,但您的原型不使用数组语法。 将原型更改为:
buildArrays( string[], int[], int[], int[] ) ;
你的main()函数也需要将数组传递给buildArrays()函数。创建单个结构并传递每个成员是不够的。如果您必须使用buildArrays()函数格式来完成作业,则可能需要重新组织数据的组织方式。也许为每个玩家数据创建单独的数组,然后在调用buildArrays()之后创建一个结构数组。