Я пытаюсь написать консольное приложение Windows (на C ++, скомпилированное с использованием g ++), которое будет выполнять серию инструкций в цикле до завершения ИЛИ, пока не будет нажата комбинация клавиш Ctrl-z (или какое-либо другое нажатие клавиши). Код, который я сейчас использую, чтобы поймать его, не работает (иначе я бы не спрашивал, верно?):
if(kbhit() && getc(stdin) == 26)
//The code to execute when ctrl-z is pressed
Если я нажимаю клавишу, она отражается, и приложение ждет, пока я не нажму клавишу Enter, чтобы продолжить вообще. При значении 26 он не выполняет заданный код. Если я использую что-то вроде 65 в качестве значения для перехвата, он перенаправит выполнение, если я нажму A, а затем Enter.
Есть ли способ пассивной проверки ввода, выбрасывания, если это не то, что я ищу, или правильной реакции, когда это то, что я ищу? ..и без необходимости нажимать Enter позже?