1. Для отслеживания нажатия клавиши в языке программирования C можно использовать функцию `kbhit()` и `getch()`.
Вот пример кода, который будет отслеживать нажатие клавиши на клавиатуре без блокирования выполнения программы:
```c
#include <conio.h>
int main() {
while (1) {
if (kbhit()) {
char key = getch();
// обработка нажатой клавиши
}
// остальной код программы
// прерывание выполнения по условию (например, по нажатию определенной клавиши)
}
return 0;
}
```
2. Для реализации интерактивного режима, где программа продолжает выполнение, но обрабатывает определенный символ для завершения работы, можно использовать тот же принцип с функциями `kbhit()` и `getch()`.
Пример кода для интерактивного режима с выходом по нажатию клавиши `Q` или `q`:
```c
#include <conio.h>
int main() {
char key;
while (1) {
// остальной код программы
if (kbhit()) {
key = getch();
if (key == 'q' || key == 'Q') {
break; // выход из цикла по нажатию клавиши Q/q
}
}
}
// код завершения программы
return 0;
}
```
При использовании данных методов, учитывайте, что функции `kbhit()` и `getch()` являются частью расширений, специфичных для некоторых компиляторов и операционных систем.