在控制台应用程序中等待用户输入的最佳方法是什么?
std::cout << "press any key to exit...";
// wait for user to hit enter or another key
答案 0 :(得分:150)
有几种方法,这里有一些可能的单行方法:
使用getch()
(需要#include <conio.h>
)。
使用getchar()
(预计输入,需要#include <iostream>
)。
使用cin.get()
(预计输入,需要#include <iostream>
)。
使用 system("pause")
(需要#include <iostream>
)。
PS:此方法还会在屏幕上打印Press any key to continue . . .
。 (对你来说似乎是完美的选择:))
编辑:正如所讨论的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)被设计为可以在没有键盘的嵌入式系统上运行的语言。 (尽管如此,嵌入式系统可能没有标准库支持的各种其他设备。)
这个问题已经讨论了很长时间。