等待用户输入控制台应用的最佳方式是什么?
std::cout << "press any key to exit..."; // wait for user to hit enter or another key
你可以试试
#include <iostream> #include <conio.h> int main() { //some codes getch(); return 0; }
有几种方法可以做到这一点,下面是一些可能的一行方法:
使用 getch()(需要 #include <conio.h>)。
getch()
#include <conio.h>
使用 getchar()(预计为 Enter,需要 #include <iostream>)。
getchar()
#include <iostream>
使用 cin.get()(预计为 Enter,需要 #include <iostream>)。
cin.get()
使用 system("pause")(需要 #include <iostream>,只有窗户)。
system("pause")
PS: 这个方法也可以在屏幕上打印 Press any key to continue . . .。(似乎是你的最佳选择:)
Press any key to continue . . .
编辑: 正如所讨论的 给你,没有完全可移植的解决方案。常见问题解答的问题19.1在一定程度上涵盖了这一点,提供了针对 Windows、类 Unix 系统、甚至 MS-DOS 和 VMS 的解决方案。
没有“标准”库函数可以做到这一点。该标准(也许令人惊讶)实际上并不承认“键盘”的概念,尽管它确实有一个“控制台输入”的标准。
在不同的操作系统上有不同的方法来实现它(见英雄胡永涛的解决方案) ,但是它不能在所有支持键盘输入的平台上移植。
请记住,C + + (和 C)被设计成可以在没有键盘的嵌入式系统上运行的语言。(尽管如此,嵌入式系统可能没有标准库所支持的各种其他设备)。
这个问题已经争论了很长时间。
Do while 循环是等待用户输入的一种很好的方式。 像这样:
int main() { do { cout << '\n' << "Press a key to continue..."; } while (cin.get() != '\n'); return 0; }
您也可以使用函数 system('PAUSE'),但是我认为这有点慢,并且依赖于平台
system('PAUSE')