2012-02-19 104 views

回答

2

您可以使用ncurses库来执行此操作。这个解决方案的缺点是你将无法使用cout来输出。

#include <ncurses.h> 
int main() 
{ 
    initscr(); 
    printw("Press Any Key To Exit..."); 
    getch(); 
    endwin(); 
} 

编译

4

试试这个: system("pause"); 它将一直持续到任何按键被按下。

编辑:请决定这种替代

+8

不便于携带,仅适用于Windows时,请务必-lncurses。 – Mat 2012-02-19 08:00:05

+0

我没有downvote,但更详细的解释可能帮助:http://stackoverflow.com/questions/1107705/systempause-why-is-it-wrong – Necrolis 2012-02-19 08:07:18

+5

它甚至不是“仅适用于Windows”,它的“Windows命令提示符只”。它在Powershell中不起作用。 – 2012-02-19 08:10:52

2

getch()getche()system("pause")exit(0) ......应该工作之前阅读下面的意见。

+1

请勿使用系统(“暂停”)。它很慢。它不喜欢防病毒软件。它依赖于操作系统。这是一个巨大的巨大的安全漏洞。 – 2012-02-19 08:03:03

+1

@Sudhir:大多数评论是真实的,但第一句话是无稽之谈。一个停顿怎么会“慢”? – 2012-02-19 09:03:01

+0

@CodyGray Sudhir想听起来像他知道他在做什么,换句话说酷:-) – 2013-05-13 21:43:07

16

您可以使用getcharcin.get()来实现此目的,两者都会阻止,直到他们可以从控制台获取角色(未输入到控制台的监控键导致系统特定领域)。

+3

我相信这两个函数取决于所使用的终端仿真程序行为不同。他们仍然需要在这里按下回车键(xterm)。 – howardh 2012-02-19 08:34:54