Я начинаю сейчас с C++, поэтому, я думаю, это будет очень простой вопрос.Почему cin внутри пока не останавливается, чтобы получить пользовательский ввод?
Ну, почему строка «cin >> x» внутри не останавливает цикл, чтобы получить пользовательский ввод (если пользователь вводит символ вместо числа)?
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
int main()
{
int x = 0;
cout << "Please, enter x: ";
cin >> x;
while (!cin)
{
cout << "Please, it must be a number!\n";
cin >> x;
}
cout << "Thanks!.";
cin.ignore();
cin.ignore();
}
Я всего лишь два дня изучаю C++, поэтому я полностью ослеплю, что такое «cin». Я пробовал с «cin.sync()» и «cin.clear()», но все равно не повезло. И я знаю, что невозможно сделать что-то вроде «cin = true», или «cout < < cin».
Спасибо, сейчас работает. Я пытался с cin.clear(); и cin.ignore(); Но не знаю, что такое «1000» делает внутри cin.ignore. Теперь у меня есть путь к следующему. Спасибо за код и за ссылку !. – Reaversword