В С# вы можете заставить консоль ждать ввода символа (что полезно для того, чтобы видеть последние выходы консоли до выхода программы). Как новичок в С++, я не уверен, что такое эквивалент. Есть один?
Консольная пауза в С++?
Ответ 1
Самый простой способ - просто:
std::cin.get();
Вы можете напечатать что-то вроде "Нажмите любую клавишу, чтобы продолжить..." до этого. Некоторые люди расскажут вам о
system("pause");
Но не используйте его. Это не переносится.
Ответ 2
#include <stdio.h>
// ...
getchar();
Функция ожидает одно нажатие клавиши и возвращает ее (целочисленное) значение.
Например, у меня есть функция, которая делает то же самое, что и System("pause")
, но не требует, чтобы "pause.exe" (это потенциальное целое безопасности, кстати):
void pause()
{
std::cout << std::endl << "Press any key to continue...";
getchar();
}
Ответ 3
В стандарте нет ничего, и ничего кросс-платформенного. Обычный метод - ждать нажатия <Enter> , а затем отменить результат.
Ответ 4
Неправильное решение было бы использовать system("pause")
, поскольку это создает дыры в безопасности (вредоносный файл pause.exe в каталоге!) и не является кросс-платформенным (пауза существует только в Windows/DOS).
Существует более простое решение:
void myPause() {
printf("Press any key to continue . . .");
getchar();
}
В этом случае используется getchar()
, который совместим с POSIX (см. this).
Вы можете использовать эту функцию следующим образом:
int main() {
...
myPause();
}
Это эффективно предотвращает мигание консоли и выход из нее.