Эквивалент Windows getch () для сбоев Mac / Linux
Я использую getch()
и мое приложение падает мгновенно. В том числе при выполнении:
int main()
{
getch();
}
Я не могу найти ссылку, но, предположительно, проблема в том, что ей нужно отключить буферизацию или что-то странное в этих строках, и я все еще хочу cout
для работы вместе с кросс-платформенным кодом.
мне сказали использовать std::cin.get()
, но я бы хотел, чтобы приложение выходило при нажатии клавиши, а не когда пользователь набрал букву или номер, а затем нажмите enter, чтобы выйти.
Is есть какая-то функция для этого? Код должен работать под Mac (my os) и Windows.
связывание / компиляция не является вопрос; включить <curses.h>
и -lcurses
в XCode, в то время как Windows использует <conio.h>
.
4 ответов
вы не показали
#include <stdio.h>
или
#include <curses.h>
или аналогичные линии. Вы уверены, что связываете с библиотекой, которая включает в себя getch()
?
используйте cin.функция get () например:
#include <iostream>
using namespace std;
int main()
{
char input = cin.get();
cout << "You Pressed: " << input;
}
программа будет ждать, пока вы нажмете клавишу.
Как только вы имеете, ключ вы отжали были бы напечатаны к экрану.
на getch
функция недоступна в Unix-подобных системах, но вы можете заменить ее консольными командами через компилятор с помощью