Когда я выполняю этот код и вводим строку (символов) для n
, он не позволяет мне вводить новый ввод, даже если я звоню clear()
. Программа заканчивается, и я не могу ввести значение в p
.cin.clear() не позволяет мне вводить новый ввод
#include <iostream>
#include <string>
#include <ios>
#include <vector>
#include <iomanip>
#include <algorithm>
using namespace std;
int main()
{
int n,p;
cin >> n;
cin.clear();
cin >> p;
return 0;
}
Покажите нам, что вы предоставляете в качестве входных данных. 'Clear()', вероятно, недостаточно, вам, скорее всего, придется «игнорировать» некоторые символы. – 0x499602D2
Вам лучше также показать, какую последовательность входных данных вы тестировали, что вызвало проблему. – user534498
Звучит как прекрасный пример для [тестовых случаев] (http://kera.name/articles/2013/10/nobody-writes-testcases-any-more/). Простой оператор 'std :: cout' может диагностировать проблему. Если 'n' не является ожидаемым выходом, вы знаете, что извлечение завершилось неудачно. –