C + + 等待用户输入

等待用户输入控制台应用的最佳方式是什么?

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

你可以试试

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


int main() {


//some codes


getch();
return 0;
}

有几种方法可以做到这一点,下面是一些可能的一行方法:

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

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

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

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

    PS: 这个方法也可以在屏幕上打印 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'),但是我认为这有点慢,并且依赖于平台