如何在C ++中阻止cin
打印到控制台屏幕?鉴于这个简单的程序:
#include <iostream>
using namespace std;
int main()
{
cout << "Hello World..." << endl;
cin.clear();
cout << "Press ENTER to Continue..." << endl;
cin.ignore();
exit(0);
}
因此,如果用户在键盘上卡住,则在按下ENTER
之前不会发生任何事情。这当前效果很好,但cin
将按键转储到控制台。如何防止此行为?
编辑:我在Visual Studio 2010中工作,我问这个简单的问题,因为我想要的东西不是特定于平台的。
答案 0 :(得分:5)
在Windows上,您需要SetConsoleMode
。
没有标准的平台独立方式,当然您可以编写自己的disable_echo()
函数并使用#if _WIN32
和#if __LINUX__
来提供与平台无关的接口的特定于平台的实现
答案 1 :(得分:0)
您需要使用termios(3)
功能切换ECHO
模式。
答案 2 :(得分:0)
无法做到。 C ++,作为一种语言规范,不是关于你的键盘 - 这纯粹是平台的决定,不幸的是,各种平台没有(甚至远程)接近就模糊终端相关的任何规范达成一致。
最好不要担心或依赖它。