Если вы просто хотите приостановить выполнение сценария до нажатия клавиши, то getch работает, но если вы хотите, чтобы символ, который они нажимали, НЕ появлялся на экране (или вам не важно, какую клавишу они нажимали), вы можно использовать
system("pause > NUL");
Он вызывает команду Windows "пауза" и маршрутизирует отображаемый текст и ввод (обычно он говорит "Нажмите любую клавишу, чтобы продолжить ...") в пустую пропасть.
Альтернативой является использование функции, подобной GetAsyncKeyState (), и циклическое прохождение всех входных кодов, чтобы увидеть, нажата ли какая-либо клавиша в данный момент. Этот метод работает намного лучше, если вы пытаетесь запустить цикл обработки и хотите отключиться, когда пользователь нажимает определенную клавишу (например, Escape). Использование его для проверки, нажимает ли пользователь какую-либо клавишу, потребует значительных затрат вычислительной мощности.