Как в Xcode прочесть нажатие клавиши без остановки программы?

233
27 сентября 2018, 16:00

Нужно прочесть нажатие клавиши в цикле. Пробовал примерно так:

while(true){
     if(std::getchar() == 's') // не работает
     ...
     char c;
     std::cin>>c// не работает
     if(c=='s')
     ...
}

Эти варианты требуют нажатия клавиши Enter по окончанию ввода.

Доп потоков для считывания ввода создавать не нужно. Так же нужно чтобы считывание клавиши не требовало подтверждения нажатия Enter. Как можно это сделать?

Answer 1
#include <stdio.h>
#include <termios.h>
#include <unistd.h>
#include <fcntl.h>
int mygetch()
{
    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;
}
READ ALSO
Помогите реализовать патерн Мост (Bridge)

Помогите реализовать патерн Мост (Bridge)

Составить программу, что обеспечивает создания ежедневнгоо и Недельного отчета продаж для некоторых магазинов в формате текстового файла...

212
error MSB6006: &ldquo;cmd.exe&rdquo; exited with code -1073741515

error MSB6006: “cmd.exe” exited with code -1073741515

Собираю проект на TeamCityЭтот же проект на Jenkins собирается без проблем, а на TeamCity падает на нескольких json

219
Скрыть консоль без использования FreeConsole()

Скрыть консоль без использования FreeConsole()

Есть ли возможность как-то по другому скрыть консоль?

230
Парсинг xml в Spring Batch

Парсинг xml в Spring Batch

В Spring Batch есть процессор которым можно извлекать данные считанные в дефолтном reader

189