Я хотел, чтобы игнорировать все символы в cin
промывать cin
в этом ответе: How to get rid of bad input one word at a time instead of one line at a time?Не может cin.ignore до EOF?
Но я обнаружил, что программа, казалось, повесьте ожидающий ввода, если я писал:
cin.ignore(std::numeric_limits<std::streamsize>::max());
Он propperly продувают cin
если я использовали '\n'
разделитель:
cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
Мой вопрос, почему я не могу просто игнорировать до EOF? Почему я должен предоставить разделитель?
You * жестяная банка * игнорируется до EOF. Вы * * игнорировали до EOF. Вы просто не понимали, что это значит. ;-) – DevSolar
Вы дошли до конца 'cin', либо путем перенаправления из файла или другого конечного источника, либо удара CTRL-D или того, что он на вашей платформе? В противном случае он будет ожидать ввода для игнорирования навсегда. –
Итак, ваше желание - отбросить все символы, которые были введены в настоящее время, а затем начать читать нормально? Это хороший вопрос. –