我注意到,每当我编写一个使用std::cin它的程序时,如果我希望用户按Enter键结束程序,我必须写std::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?
}
Run Code Online (Sandbox Code Playgroud)
我也注意到,当我不是cin用于实际输入而是仅用于最后的ignore()呼叫时,我只需要一个.
Discl:我正在简化实际发生的事情.
第一个用于清除提取操作符(>>)未消耗的内容.第二个等待另一个\n.
在提取后执行std :: getline时完全相同:the_stream::ignore(std::numeric_limits<streamsize>::max(), '\n');在调用std :: getline()之前需要a
| 归档时间: |
|
| 查看次数: |
2817 次 |
| 最近记录: |