我注意到,每当我编写一个使用std::cin
它的程序时,如果我希望用户按Enter键结束程序,我必须写std::cin.ignore()
两次才能获得所需的行为.例如:
#includeint 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()
呼叫时,我只需要一个.
Discl:我正在简化实际发生的事情.
第一个用于清除提取操作符(>>)未消耗的内容.第二个等待另一个\n.
在提取后执行std :: getline时完全相同:the_stream::ignore(std::numeric_limits
在调用std :: getline()之前需要a