Я новичок в C++, и я использую Visual Studio 2015.Cin, не дожидаясь ввода, несмотря на cin.ignore()
cin
не ждет ввода после "Please enter another integer:\n"
и выходов "You entered 0"
каждый раз.
Я искал в Интернете больше часа без решения. Никакая комбинация cin.ignore()
не работает. Почему буфер cin
еще не очищен?
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> vals;
int val = 0;
int n = 0;
cout << "Please enter some integers (press a non-numerical key to stop)\n";
while (cin >> val)
vals.push_back(val);
cin.ignore(INT_MAX, '\n');
cin.ignore();
cout << "Please enter another integer:\n";
cin.ignore();
cin >> n;
cout << "You entered " << n;
system("pause");
return 0;
}
Посмотрите первый здесь HTTP: // stackoverflow.com/questions/4258887/semantics-of-flags-on-basic-ios, а затем здесь http://stackoverflow.com/questions/10379274/wrong-inputs-will-cause-the-program-to-exit/10379322 # 10379322 –