Я заметил, что всякий раз, когда я пишу программу, которая использует std::cin
, если я хочу, чтобы пользователь нажимал Enter, чтобы закончить программу, я должен написать std::cin.ignore()
дважды, чтобы получить желаемое поведение. Например:Почему нужен второй cin.ignore()?
#include <iostream>
int main(void)
{
int val = 0;
std::cout << "Enter an integer: ";
std::cin >> val;
std::cout << "Please press Enter to continue..." << std::endl;
std::cin.ignore();
std::cin.ignore(); // Why is this one needed?
}
Я также заметил, что, когда я не использую cin
для фактического ввода, но довольно просто для ignore()
вызова в конце концов, мне нужно только одно.
Вы используете Linux или Windows, это может быть из-за проблема CRLF при запуске Windows ... – Ben
Такая же проблема возникает в Solaris. Это не имеет никакого отношения к CRLF. –