【发布时间】:2019-09-23 16:18:44
【问题描述】:
我正在尝试在 C++ 中实现暂停功能,但它一直在循环。
我正在使用 macOS,但我正在尝试创建一个可以在任何系统中使用的暂停功能...我相信我的 cin >> 没有从键盘捕获 '\n' 或 '\r' 并且它正在循环永远。
void Transferencia::pause() {
char enter = 0;
while(enter != '\n' && enter != '\r') {
cout << "(Press Enter to Continue...) ";
cin >> enter;
}
cin.clear();
}
我想暂停我的程序,直到用户按下“输入”键。 但即使我按下“输入/返回”,它也会一直循环......
【问题讨论】:
-
MAC 表示与 Mac 完全不同的东西。
-
当
enter可以等于'\n'并且 等于\r? -
提示:
||->&&. -
你试过检查
enter的值吗?就为了您可以“手动检查”您的while条件?另外,想一想:在 Return == '\n' 的系统中,第一个条件为假,但后者为真;因为它是一个逻辑或,while 条件将始终通过。换句话说,您有两个互斥条件(在返回的情况下)和逻辑 OR;这将始终评估为真(同样,在按下 Return 键的情况下)。 -
我一般用简单的:
std::cout << "Paused. Press ENTER to continue.\n"; std::cin.ignore(1000000, '\n');