На данный момент у меня есть текстовый файл, содержащий информацию, относящуюся к разным музыкантам.
David Byrne 1 Talking_Heads Lead-Vocals
Chris Frantz 1 Talking_Heads Drummer
Tina Weymouth 3 Talking_Heads Compass_Point_All_Stars Tom_Tom_Club Bass
В этом порядке идет имя, фамилия, количество групп, в которых они были, группы, в которых они находились, и, наконец, их роль в группе.
При поиске людей полосы помещаются в отображаемый вектор, но этот вектор не заканчивается, поэтому при поиске, например, Тины Уэймут, она покажет две предыдущие записи, а также полосы Тины.
while (artist >> forname >> surname >> bandnum)
{
for (int i = 0; i < bandnum; i++)
{
string tmp;
artist >> tmp;
band.push_back(tmp);
}
artist >> role;
if (strF == forname && strS == surname) {
system("CLS");
cout << "Artist found" << endl;
cout << forname << " " << surname << " ";
ostream_iterator<string> output_iterator(cout, " ");
copy(band.begin(), band.end(), output_iterator);
cout<< role << endl;
system("pause");
}
}
Выше приведен код, который должен прочитать число перед именами и сделать вектор такого размера, который содержит каждую полосу, вместо этого он создает бесконечный вектор.