在Windows上,我具有以下代码来查找输入而不会中断循环:
#include <conio.h> #include <Windows.h> #include <iostream> int main() { while (true) { if (_kbhit()) { if (_getch() == 'g') { std::cout << "You pressed G" << std::endl; } } Sleep(500); std::cout << "Running" << std::endl; } }
但是,看到没有conio.h,在Linux上实现相同目标的最简单方法是什么?
conio.h
上面引用的ncurses howto可能会有所帮助。这是一个示例,说明如何像conio示例一样使用ncurses:
#include <ncurses.h> int main() { initscr(); cbreak(); noecho(); scrollok(stdscr, TRUE); nodelay(stdscr, TRUE); while (true) { if (getch() == 'g') { printw("You pressed G\n"); } napms(500); printw("Running\n"); } }
请注意,对于ncurses,iostream不使用标头。这是因为将stdio与ncurses混合会产生意外结果。
iostream
顺便说一下,ncurses定义TRUE和FALSE。正确配置的ncurses将为ncurses使用与bool用于配置ncurses的C ++编译器相同的数据类型。
TRUE
FALSE
bool