c++ - 在c++中应该使用什么代码代替getche

标签 c++ visual-studio-2010

我是 C++ 新手,

我应该编写什么代码才能使屏幕静止。我用的是

getche();

用c语言编写。但我应该在 C++ 中使用什么而不是 getche() ; 我试过了

std::cin.get();

但是控制台窗口显示然后很快就消失了。

最佳答案

the console windows displays and then goes off quickly.

看来你的缓冲区里有东西,并且 cin.get正在将其作为一个角色来阅读。例如:

int i = 0;
std::cin >> i;
std::cin.get();

当您输入数字并按 Enter 键时,cin >> i会消耗该数字,但会留下 \n缓冲区中的字符(来自 Enter 按键)将由 std::cin.get() 读取无需等待用户输入新数据。

为了使这个示例达到我们想要的效果,我们需要在调用 std::cin.get() 之前清空缓冲区。 :

int i = 0;
std::cin >> i;
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
std::cin.get();

std::numeric_limits定义于 <limits>头文件。

关于c++ - 在c++中应该使用什么代码代替getche,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20921127/

相关文章:

c++ - 我怎样才能改变这个循环不使用继续?

c++ - typedef 枚举不工作 C++

c# - OpenFileDialog/SaveFile 对话框初始文件夹

.net - 如何使 Mysql .Net 连接器 6.3.3Beta 在 VS Web Express 2010 中工作?

c# - "The debugger cannot continue running the process."

c++ - 如何使用 C++ 概念 ("concepts lite") 支持构建 gcc?

c++ - iOS didFailToConnectPeripheral : with error Code=0 "Unknown error."

c++ - 基类静态引用数据成员上 C++ 对象切片行为的奇怪情况

c++ - 如何在 Visual Studio 2010 中设置宏?

Visual Studio 2010 中局部变量的 Javascript Intellisense