Попытка прочитать вектор из текстового файла - PullRequest
0 голосов
/ 19 марта 2019
    while (artist >> forname >> surname >> bandnum)
{
for (int i = 0; i <= bandnum; i++)
{
artist >> band[i];
}
for (int i = 0; i > bandnum; i++)
{
cout << band[i];
}
artist >> role;

Следующий код показывает, как я пытаюсь прочитать вектор из моего текстового файла, как показано ниже

Джон Смит 3 a b c певец

Порядок должен быть прочитан по имени, имени, номеру группы, полосам, за которые они играли, а затем по их роли. Artist - это ifstream, а bandnum - количество групп, за которые они играли, а "a b c" - их группы. band - это вектор как количество групп, для которых они играют, изменится для каждого исполнителя. Когда я пытаюсь запустить это, код ломается, говоря «векторный индекс вне диапазона». Что я могу сделать, чтобы это исправить?

1 Ответ

0 голосов
/ 19 марта 2019

Делая дикие предположения, вы неправильно изменяете размер полосы (например, это нулевой размер).Возможно, вам нужно использовать push_back для добавления элементов в ваш вектор.

while (artist >> forname >> surname >> bandnum)
{
    for (int i = 0; i < bandnum; i++)
    {
        string tmp;
        artist >> tmp;
        band.push_back(tmp);
    }
    artist >> role;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...