如何在C++11及以后版本中替换`getch()`?
时间: 2024-11-20 13:33:44 浏览: 38
在C++11及以后版本中,`getchar()`函数可以作为`getch()`的一个替代选项。`getchar()`也是从`stdio.h`头文件中获取一个字符的输入,通常用于标准输入流。这是一个例子:
```cpp
#include <iostream>
using namespace std;
int main() {
char user_input;
while (true) {
aa();
cout << "任意键继续,按回车键退出" << endl;
user_input = getchar(); // 获取用户输入
if (user_input == '\n') { // 如果用户输入的是换行符(通常代表按下回车键)
cout << "用户输入了回车,即将退出" << endl;
break; // 退出循环
}
}
return 0;
}
```
另一个选择是使用`std::cin.get()`,它可以读取字符直到遇到分隔符,例如空格、换行符等:
```cpp
while (true) {
aa();
cout << "任意键继续,按空格键退出" << endl;
char user_input;
if (std::cin.get(user_input)) { // 如果成功读取到字符
if (user_input == ' ') { // 检查是否是空格
cout << "用户输入空格,即将退出" << endl;
break;
}
} else { // 用户可能按下了其他非字符键
break;
}
}
```
这两个选项都是C++11及更高版本的标准输入处理方式,更现代且跨平台。记得在处理用户输入时,适当地处理异常情况和错误状态。
阅读全文