LINUX.ORG.RU

Сообщения MarisaLovesUsAll

 

Консольная программа завершается при вызове getchar() и нажатии Enter/стрелок

В общем, есть один код.
И когда я тыкаю Enter, программа завершается, вместо того, чтобы записать код клавиши в переменную int ch.
Программа запущена в эмуляторе терминала под Debian.
ЧЯДНТ?
Компьютера с этим багом под рукой нет, но если дело именно в нём - то, предположительно, с чем могут быть проблемы?

#include <termios.h>
#include <unistd.h>

int getCharacterCode() {
    struct termios  oldTerminalSettings,
                    newTerminalSettings;
    int ch;
    tcgetattr( STDIN_FILENO, &oldTerminalSettings );
    newTerminalSettings = oldTerminalSettings;
    newTerminalSettings.c_lflag &= ~( ICANON | ECHO);
    tcsetattr( STDIN_FILENO, TCSANOW, &newTerminalSettings );
    ch = getchar();
    tcsetattr( STDIN_FILENO, TCSANOW, &oldTerminalSettings );
return ch;
}

 , , ,

MarisaLovesUsAll
()

RSS подписка на новые темы