0
初めて関数を呼び出すと正常に動作します。ベクトルが正常に機能しない関数
しかし、2回目に関数を呼び出すと、コードの最初の部分にジャンプします。ここで、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()を追加しました。
cin >> temp >> skipws;
に
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