C++ 库特<<&引用\n\n按任意键继续或按Ctrl+;Z退出;;如何隐藏按下的键?

C++ 库特<<&引用\n\n按任意键继续或按Ctrl+;Z退出;;如何隐藏按下的键?,c++,C++,在我的循环结束时,我有: cout<<"\n\n any key to continue or Ctrl+Z to exit."; 有多种方法可以处理这个问题 但这取决于您使用的操作系统 http://en.wikipedia.org/wiki/Conio.h 备选案文1: 使用conio.h的窗口 getch() 或者使用诅咒的*nix。h getch() 备选案文2: 在Windows中,可以使用SetConsoleMode()关闭任何标准输入函数的echo。

在我的循环结束时,我有:

cout<<"\n\n  any key to continue or Ctrl+Z to exit.";

有多种方法可以处理这个问题

但这取决于您使用的操作系统

http://en.wikipedia.org/wiki/Conio.h

备选案文1: 使用conio.h的窗口

  getch() 
或者使用诅咒的*nix。h

getch() 
备选案文2: 在Windows中,可以使用SetConsoleMode()关闭任何标准输入函数的echo。 代码:

#包括
#包括
#包括
使用名称空间std;
int main()
{
句柄hStdin=GetStdHandle(标准输入句柄);
DWORD模式=0;
GetConsoleMode(hStdin和模式);
设置控制台模式(hStdin,模式和(~启用回波输入));
字符串s;
getline(cin,s),;

与其在每次迭代中显示一次消息,不如在函数开始时显示一次消息?这样,您就不必提示用户输入确认键。还有一个问题是,我不能再使用Ctrl+Z退出。我如何保持Ctrl+Z作为该程序的唯一退出?您需要Ctrl-Z还是只需使用Ctrl-Z方法类似于'q'退出,然后您可以在(strcmp(输入'q')!=0)任务要求我们以Ctrl-Z终止时退出。
getch() 
#include <iostream>
#include <string>
#include <windows.h>

using namespace std;

int main()
{
  HANDLE hStdin = GetStdHandle(STD_INPUT_HANDLE); 
  DWORD mode = 0;
  GetConsoleMode(hStdin, &mode);
  SetConsoleMode(hStdin, mode & (~ENABLE_ECHO_INPUT));

  string s;
  getline(cin, s);

  cout << s << endl;
  return 0;
 }//main
#include <iostream>
#include <string>
#include <termios.h>
#include <unistd.h>

using namespace std;

int main()
{
   termios oldt;
   tcgetattr(STDIN_FILENO, &oldt);
   termios newt = oldt;
   newt.c_lflag &= ~ECHO;
   tcsetattr(STDIN_FILENO, TCSANOW, &newt);

   string s;
   getline(cin, s);

   cout << s << endl;
   return 0;
 }//main