首页 文章

C等待用户输入[重复]

提问于
浏览
72

这个问题在这里已有答案:

在控制台应用程序中等待用户输入的最佳方法是什么?

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

4 回答

  • 132

    有几种方法,这里有一些可能的单行方法:

    • 使用 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的解决方案 .

  • 7

    do while循环是一种等待用户输入的好方法 . 像这样:

    int main() 
    {
    
     do 
     {
       cout << '\n' << "Press a key to continue...";
     } while (cin.get() != '\n');
    
     return 0;
    }
    

    你也可以使用函数 system('PAUSE') ,但我认为这有点慢和平台相关

  • 3

    没有“标准”库函数来执行此操作 . 标准(可能令人惊讶)并没有真正认识到“键盘”的概念,尽管它确实有“控制台输入”的标准 .

    有不同的方法可以在不同的操作系统上实现它(参见herohuyongtao的解决方案),但它不能在支持键盘输入的所有平台上移植 .

    请记住,C(和C)被设计为可以在没有键盘的嵌入式系统上运行的语言 . (尽管如此,嵌入式系统可能没有标准库支持的各种其他设备) .

    这件事已经争论了很长时间 .

  • 4

    你可以试试

    #include <iostream>
    #include <conio.h>
    
    int main() {
    
        //some codes
    
        getch();
        return 0;
    }
    

相关问题