C ++等待用户input
在控制台应用程序中等待用户input的最佳方式是什么?
std::cout << "press any key to exit..."; // wait for user to hit enter or another key
有几种方法可以实现,下面是一些可能的单行方法:
-
使用
getch()
(需要#include <conio.h>
)。 -
使用
getchar()
(对于Enter需要,需要#include <iostream>
)。 -
使用
cin.get()
(期待input ,需要#include <iostream>
)。 -
使用
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; }