На Windows можно использовать getch() вместе с заголовочным файлом conio.h.
#include <iostream>
#include <conio.h>
int main() {
int z
while (z != ' ') {
cout<< "Нажмите SPACE " << endl;
z = getch();
}
}
На *nix-OS есть curses.h (ncurses.h), там также имеется функция getch(). Однако при использовании данной функции вы остаетесь привязаны к curses, поэтому желательно использовать следующую конструкцию:
#include <termios.h>
#include <unistd.h>
int getch( ) {
struct termios oldt,
newt;
int ch;
tcgetattr( STDIN_FILENO, &oldt );
newt = oldt;
newt.c_lflag &= ~( ICANON | ECHO );
tcsetattr( STDIN_FILENO, TCSANOW, &newt );
ch = getchar();
tcsetattr( STDIN_FILENO, TCSANOW, &oldt );
return ch;
}
Также на Windows можно использовать PDCurses для создания мультиплатформенных консольных приложений, он почти полностью совместим с ncurses.