这个问题在这里已有答案:
在控制台应用程序中等待用户输入的最佳方法是什么?
std::cout << "press any key to exit..."; // wait for user to hit enter or another key
有几种方法,这里有一些可能的单行方法:
使用 getch() (需要 #include <conio.h> ) .
getch()
#include <conio.h>
使用 getchar() (预期输入,需要 #include <iostream> ) .
getchar()
#include <iostream>
使用 cin.get() (预期输入,需要 #include <iostream> ) .
cin.get()
使用 system("pause") (需要 #include <iostream> ) .
PS:此方法还将在屏幕上打印 Press any key to continue . . . . (似乎是你的完美选择:))
Press any key to continue . . .
Edit: 正如here所讨论的那样,没有完全可移植的解决方案 . comp.lang.c FAQ的问题19.1在某种程度上涵盖了这一点,包括Windows,类Unix系统甚至MS-DOS和VMS的解决方案 .
do while循环是一种等待用户输入的好方法 . 像这样:
int main() { do { cout << '\n' << "Press a key to continue..."; } while (cin.get() != '\n'); return 0; }
你也可以使用函数 system('PAUSE') ,但我认为这有点慢和平台相关
system('PAUSE')
没有“标准”库函数来执行此操作 . 标准(可能令人惊讶)并没有真正认识到“键盘”的概念,尽管它确实有“控制台输入”的标准 .
有不同的方法可以在不同的操作系统上实现它(参见herohuyongtao的解决方案),但它不能在支持键盘输入的所有平台上移植 .
请记住,C(和C)被设计为可以在没有键盘的嵌入式系统上运行的语言 . (尽管如此,嵌入式系统可能没有标准库支持的各种其他设备) .
这件事已经争论了很长时间 .
你可以试试
#include <iostream> #include <conio.h> int main() { //some codes getch(); return 0; }
4 回答
有几种方法,这里有一些可能的单行方法:
使用
getch()
(需要#include <conio.h>
) .使用
getchar()
(预期输入,需要#include <iostream>
) .使用
cin.get()
(预期输入,需要#include <iostream>
) .使用 system("pause") (需要
#include <iostream>
) .PS:此方法还将在屏幕上打印
Press any key to continue . . .
. (似乎是你的完美选择:))Edit: 正如here所讨论的那样,没有完全可移植的解决方案 . comp.lang.c FAQ的问题19.1在某种程度上涵盖了这一点,包括Windows,类Unix系统甚至MS-DOS和VMS的解决方案 .
do while循环是一种等待用户输入的好方法 . 像这样:
你也可以使用函数
system('PAUSE')
,但我认为这有点慢和平台相关没有“标准”库函数来执行此操作 . 标准(可能令人惊讶)并没有真正认识到“键盘”的概念,尽管它确实有“控制台输入”的标准 .
有不同的方法可以在不同的操作系统上实现它(参见herohuyongtao的解决方案),但它不能在支持键盘输入的所有平台上移植 .
请记住,C(和C)被设计为可以在没有键盘的嵌入式系统上运行的语言 . (尽管如此,嵌入式系统可能没有标准库支持的各种其他设备) .
这件事已经争论了很长时间 .
你可以试试