программа за каждый шаг основной итерации рисует график через plplot и выводит в консоль некоторые данные. мне нужно, что бы по нажатию определённой клавиши я программа остановила цикл и выполнила некоторые действия и вернулась к циклу. естественно, задержку выставлять недопустимо. время выполнения одной итерации ~10^{-2} сек.
Тебе в цикле надо мессаги собирать и обрабатывать, можно не на каждой итерации. Как это сделать на билдере/дельфах я знаю, на чистом апи - без понятия, не пробовал, но где-то по GetMessages/ProcessMessages можно загуглить.
вообщем цикле программы проверяй сообщение клавиши.
также погугли по созданию консольных приложений, там же в примерах есть как обработать сообщение клавиш для корректного выхода.
Если программа консольная, то тебе нужен цикл с ReadConsoleInput. Плохо в ней то, что она не успокаивается и не возвращается, пока не прочитает хотя бы один эвент...