我收到“请求从‘std::string (*)[50]’到非标量类型‘std::string’的转换”错误并且似乎无法修复它

I am getting a " conversion from ‘std::string (*)[50]’ to non-scalar type ‘std::string’ requested" error and cant seem to fix it

这是我正在编写的程序的开头。如您所见,它是不完整的,但我在检查我的程序是否存在错误时遇到了这个错误。我查了一下,找到了解决方案,例如 "do not include brackets while calling a multidim array" 我更正并得到了这个错误。关于如何解决它有什么建议吗?

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

using namespace std;

void readEmployees();
void readPasswords();
void mixPasswords(string(*)[50], string[], string(*)[50]);

string employee[50][50];

string passwords[50];

string passwordsAssigned[50][50];

int main()
{
    readEmployees();
    readPasswords();

    mixPasswords(employee, passwords, passwordsAssigned);

    return 0;
}

void readEmployees()
{
    int y;
    ifstream fileInput;
    fileInput.open("employees.txt");

    for(int x = 0; x < 50; x++)
    {
            fileInput >> employee[x][y] >> employee[y][x];
            y++;
    }



}

void readPasswords()
{
    ifstream fileInput;
    fileInput.open("passwords.txt");

    for(int x = 0; x < 50; x++)
    {
            fileInput >> passwords[x];
    }

}

void mixPasswords(string employee(*)[50], string passwords[], string completed(*)[50])
{

}

您的声明 void mixPasswords(string, string, string); 与您传递给它的参数类型不匹配。您需要将声明更改为

void mixPasswords(string[][50], string[], string[][50]);

此外,您对 mixPasswords 的定义并未定义先前声明的函数,因为其参数列表与声明不匹配。相反,它声明并定义了一个新的、未使用的、采用不同参数集的 mixPasswords 重载。您需要使您的声明和定义匹配。