C ++等待用户输入

时间:2014-01-21 12:00:20

标签: c++

在控制台应用程序中等待用户输入的最佳方法是什么?

std::cout << "press any key to exit...";
// wait for user to hit enter or another key

4 个答案:

答案 0 :(得分:150)

有几种方法,这里有一些可能的单行方法:

  1. 使用getch()(需要#include <conio.h>)。

  2. 使用getchar()(预计输入,需要#include <iostream>)。

  3. 使用cin.get()(预计输入,需要#include <iostream>)。

  4. 使用 system("pause") (需要#include <iostream>)。

    PS:此方法还会在屏幕上打印Press any key to continue . . .。 (对你来说似乎是完美的选择:))


  5. 编辑:正如所讨论的here,没有完全可移植的解决方案。 comp.lang.c FAQ的问题19.1涵盖了这个问题,包括Windows,类Unix系统甚至MS-DOS和VMS的解决方案。

答案 1 :(得分:8)

do while循环将是一种等待用户输入的好方法。 像这样:

int main() 
{

 do 
 {
   cout << '\n' << "Press a key to continue...";
 } while (cin.get() != '\n');

 return 0;
}

您也可以使用函数system('PAUSE'),但我认为这有点慢且与平台有关

答案 2 :(得分:4)

你可以尝试

#include <iostream>
#include <conio.h>

int main() {

    //some codes

    getch();
    return 0;
}

答案 3 :(得分:4)

没有“标准”库函数来执行此操作。标准(可能令人惊讶)并没有真正认识到“键盘”的概念,尽管它确实有“控制台输入”的标准。

有多种方法可以在不同的操作系统上实现它(参见herohuyongtao的解决方案),但它不能在所有支持键盘输入的平台上移植。

请记住,C ++(和C)被设计为可以在没有键盘的嵌入式系统上运行的语言。 (尽管如此,嵌入式系统可能没有标准库支持的各种其他设备。)

这个问题已经讨论了很长时间。