Тема: Чи можна написати універсальну функцію замість декількох схожих
Добрий день! Я прикріпив частину коду який виконує пошук по записах. Ця функція шукає якесь певне значення PlayerIndex. Така ж сама функція може шукати PlayerAge, якщо тут
int f = atoi( player[i].PlayerIndex.c_str());
PlayerIndex замінити на PlayerAge. Чи можна написати якусь універсальну функцію, щоб можна було вказати по яких саме значеннях проводити пошук, замість того щоб писати окрему функцію пошуку для кожного значення?
void FUNCTION::Search_Int(int A)
{
int search = A;
int i = 0, max;
PLAYER player[SIZE1];
ifstream file("basket.txt");
if (!file)
{
return;
}
else
{
while (!file.eof())
{
file >> player[i].PlayerIndex >> player[i].PlayerName>> player[i].PlayerName1>> player[i].PlayerNationality >> player[i].PlayerClub >> player[i].PlayerAge;
file >> player[i].PlayerPosition >> player[i].PlayerWeight >> player[i].PlayerHeight >> player[i].PlayerMatches >> player[i].PlayerPrice >> player[i].PlayerPoints;
i++;
}
max = i;
cout << lin_e << endl;
for (i = 0; i<max; i++)
{
int f = atoi( player[i].PlayerIndex.c_str()); // перетворення string y int
if (f == search)
{
cout << player[i].PlayerIndex << '\t' << '|' << '\t' << player[i].PlayerName<< " " << player[i].PlayerName1 << '\t' << '|' << '\t' << player[i].PlayerNationality << '\t' << '|' << '\t';
cout << player[i].PlayerClub << '\t' << '|' << '\t' << player[i].PlayerAge << '\t' << '|' << '\t' << player[i].PlayerPosition << '\t' << '|' << '\t' << player[i].PlayerWeight << '\t' << '|' << '\t';
cout << player[i].PlayerHeight << '\t' << '|' << '\t' << player[i].PlayerMatches<< '\t' << '|' << '\t' << player[i].PlayerPrice << '\t' << '|' << '\t';
cout << player[i].PlayerPoints << '\t' << '|' << '\t' << endl;
cout << line << endl;
}
}
}
file.close();
return;
}