double In(string text)
{
cout << "Введите числовое значение " << text << ":";
double x;
while (!(cin >> x) or cin.get() != '\n')
{
cout << "Error!" << endl << "Введите числовое значение " << text << ":";
cin.clear();
while (cin.get() != '\n');
}
return x;
}
while (!(cin >> x) or cin.get() != '\n')
пока( не (прочитать из буфера ввода целое) или прочитанный из буфера символ не равен '\n')
не понимаю как работает второй while.
while (cin.get() != '\n');
пока(прочитанный из буфера символ не равен '\n') nop
string s;
getline(cin, s);
istringstream is(s);
while(is >> s)
{
int i = 0;
try
{
i = stoi(s);
}
catch(exception& e)
{
cout << "Ошибка: " << e.what() << " " << s << "\n";
continue;
}
cout << "i == " << i << "\n";
}