C ++等待用户input

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

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

有几种方法可以实现,下面是一些可能的单行方法:

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

  2. 使用getchar() (对于Enter需要,需要#include <iostream> )。

  3. 使用cin.get() (期待input ,需要#include <iostream> )。

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

    PS:这个方法也会打印Press any key to continue . . . Press any key to continue . . . 屏幕上。 (似乎是你的完美select:))


编辑:正如这里所讨论的,没有完全可移植的解决scheme。 comp.lang.c常见问题解答19.1中有关于Windows,类Unix系统甚至MS-DOS和VMS的解决scheme。

do while循环将是等待用户input的一个好方法。 喜欢这个:

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

你也可以使用functionsystem('PAUSE')但我认为这是慢一点,平台依赖

没有“标准”库函数来做到这一点。 标准(也许令人惊讶)实际上并没有认识到“键盘”的概念,尽pipe它有一个“控制台input”的标准。

在不同的操作系统上有不同的方法来实现它(参见herohuyongtao的解决scheme),但是它不支持在所有支持键盘input的平台上移植。

请记住,C ++(和C)被devise成可以在没有键盘的embedded式系统上运行的语言。 (话虽如此,一个embedded式系统可能没有标准库支持的各种其他设备)。

这件事已经有很长一段时间了。

你可以试试

 #include <iostream> #include <conio.h> int main() { //some codes getch(); return 0; }