Вот начало программы, которую я пишу. Как видите, он неполон, но я проверял свою программу на наличие ошибок и получил эту ошибку. Я нашел его и нашел такие решения, как «не включать скобки при вызове многомерного массива», исправил и получил эту ошибку. Любой совет, как решить это?
#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
это принимает другой набор параметров. Вы должны сделать ваше объявление и определение совпадают.
Других решений пока нет …