Когда я вызываю функцию в первый раз, она работает нормально.Функция с векторами не работает должным образом
Но когда я вызываю функцию во второй раз, она просто перепрыгивает через первую часть кода, где я пытаюсь добавить новое имя в векторное имя vec_ и отправляет меня в цикл for.
void addNewStudent(int num)
{
string name;
cout << "Add new student" << endl;
cout << "Name : ";
getline(cin, name);
vec_name.push_back(name);
float avg = 0;
for (int i = 1; i <= num; i++)
{
float temp;
cout << endl << "Enter " << i << " grade : ";
cin >> temp;
avg += temp;
}
avg /= num;
vec_avg.push_back(avg);
}
Что я делаю неправильно?
Я добавил cin.ignore() в конце функции.
void addNewStudent(int num)
{
string name;
cout << "Add new student" << endl;
cout << "Name : ";
getline(cin, name);
vec_name.push_back(name);
float avg = 0;
for (int i = 1; i <= num; i++)
{
float temp;
cout << endl << "Enter " << i << " grade : ";
cin >> temp;
avg += temp;
}
avg /= num;
vec_avg.push_back(avg);
cin.ignore();
}
это не помогло, но после прочтения вашего ответа я нашел cin.ignore() tnx – user3350597
Да, или 'cin.clear();'. Но 'skipws' обычно работает. @ User3350597 – AhmadWabbi