C++ ожидание ввода пользователем [дубликат]


этот вопрос уже есть ответ здесь:

что было бы лучшим способом дождаться ввода пользователя в консольном приложении?

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

4 ответа:

несколько способов сделать это, вот некоторые из возможных подходов:

  1. использовать getch() (нужен #include <conio.h>).

  2. использовать getchar() (ожидается введите, нужно #include <iostream>).

  3. использовать cin.get() (ожидается введите, нужно #include <iostream>).

  4. использовать system("pause") (нужен #include <iostream>).

    PS: этот метод также будет печатать Press any key to continue . . . on кино. (кажется, идеальный выбор для вас :))


Edit: как обсуждалось здесь, для этого нет полностью портативного решения. Вопрос 19.1 о comp.ленг.с чаво охватывает это в некоторой глубине, с решениями для Windows, Unix-подобных систем, и даже MS-DOS и виртуальных машин.

цикл do while был бы хорошим способом дождаться ввода пользователя. Вот так:

int main() 
{

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

 return 0;
}

вы также можете использовать функцию system('PAUSE') но я думаю, что это немного медленнее и зависит от платформы

для этого нет" стандартной " библиотечной функции. Стандарт (возможно, удивительно) на самом деле не признает концепцию "клавиатуры", хотя у него есть стандарт для "консольного ввода".

существуют различные способы достижения этого в разных операционных системах (см. решение herohuyongtao), но оно не переносится на всех платформах, поддерживающих ввод с клавиатуры.

помните, что C++ (и C) разработаны как языки, которые могут работать на встроенных системы, которые не имеют клавиатур. (Сказав это, встроенная система может не иметь различных других устройств, которые поддерживает стандартная библиотека).

этот вопрос обсуждается уже давно.

вы можете попробовать

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

int main() {

    //some codes

    getch();
    return 0;
}