使程序停止直到输入被按下

时间:2014-02-25 21:44:29

标签: c++ iostream cout cin

我有一个程序,当输入命令(cin)帮助时,它会显示一个帮助说明。这个说明看起来有点像这样:

C ++

if (cmd == "help")
{

    cout << "▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄\n";
    cout << "██             Help Menu                ██\n";
    cout << "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n";
    cout << "Press a key then enter to continue\n" << string( 10, '\n' );
    cin.ignore();
    return 0;
}

字符串var cmd是'help'。

我在Mac上编译它并包括:

C ++

#include <iostream>
#include <string>
using namespace std;

我可以用什么代码来完成这项工作? cin.ignore();没有接缝做任何事情,而且cin.get();

2 个答案:

答案 0 :(得分:0)

我想你可能想要这样的东西:

string input;
getline(cin, input);

答案 1 :(得分:-1)

while (x!='\n')
{
    cin.get(x);
};

编辑: 好的,我已经做了一些挖掘。以上是我解决同样问题的方法。看起来你遇到麻烦的原因是你需要清理输入流才能使用cin.get()或cin.ignore()来等待ENTER,所以:

cin.ignore(INT_MAX,'\n');
cin.ignore();

最重要的是,你必须做两次才能使它发挥作用。