【发布时间】:2013-11-25 08:37:11
【问题描述】:
如何从程序中搜索用户输入的名称?目前我有这个用于我的搜索,但是每当程序找到选定的学生时,它就会像一个永无止境的循环一样不停地打印。我也为此使用了多态性,因为学生分为本地学生和国际学生。
我曾想过使用 stl 算法来遍历学生,但我对 stl 很陌生。我尝试了一些来自 Internet 的示例,但它在应用于我的程序时总是给我一个错误。
主要功能
int main()
{
clsUniversityProgram objProgram[3];
for (int x = 0; x < 3; x++)
{
objProgram[x].programInfo();
}
vector <clsStudent*> student;
addStudents(student, objProgram);
searchStudent(student);
return 0;
}
void searchStudent(const vector <clsStudent*>& s)
{
string searchName;
const clsStudent *foundStudent;
cout << "\nEnter student name to search for. [ENTER] terminates" << endl;
cin >> searchName;
if (s.size() == 0)
cout << "There is 0 student in the database.";
while(searchName.length() != 0)
{
for (int i = 0; i < s.size(); i++)
{
if (s[i]->getName() == searchName)
{
cout << "Found " << searchName << "!";
// s[i]->print();
break;
}
else
{
cout << "No records for student: " << searchName;
cout << "\nEnter student name to search for. [ENTER] terminates" << endl;
cin >> searchName;
}
}
}
}
【问题讨论】:
-
听说过 find/find_if 吗? en.cppreference.com/w/cpp/algorithm/find
标签: c++ vector polymorphism stl-algorithm