0
처음 함수를 호출하면 정상적으로 작동합니다.벡터가 제대로 작동하지 않는 함수
하지만 두 번째로 함수를 호출하면 코드의 첫 번째 부분으로 넘어 가서 벡터 vec_name에 새 이름을 추가하고 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