Я получаю & quot; преобразование из ‘std :: string (*) [50] ’в нескалярный тип ‘std :: string’ запрашивается & quot; ошибка и не могу исправить

Вот начало программы, которую я пишу. Как видите, он неполон, но я проверял свою программу на наличие ошибок и получил эту ошибку. Я нашел его и нашел такие решения, как «не включать скобки при вызове многомерного массива», исправил и получил эту ошибку. Любой совет, как решить это?

#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])
{

}

-2

Решение

Ваша декларация void mixPasswords(string, string, string); не соответствует типам параметров, которые вы передаете ему. Вы должны изменить свою декларацию на что-то вроде

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

Кроме того, определение у вас есть для mixPasswords не определяет ранее объявленную функцию, так как ее список параметров не соответствует объявлению. Вместо этого он объявляет и определяет новую, неиспользованную перегрузку mixPasswords это принимает другой набор параметров. Вы должны сделать ваше объявление и определение совпадают.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]