LINUX.ORG.RU

опрос клавиатуры


0

0

Как можно сделать опрос клавиатуры в С /С++ (была ли нажата одна из
клавиш (например "срелка вправо" или "стрелка влево" )) ?
Или где об этом можно почитать ?

anonymous

Никак. Нет никакой клавиатуры. Или ты пользуешься X11 и его event-ами, или какой либо библиотекой, знающей все возможные терминалы (ncurses, к примеру).

anonymous
()

Как это никак ?? А как пишутся тогда игрушки ?
Это понятно что существует только stdin .
Вопрос в том как можно прочитать из буфера клавиатуры,
какая клавиша была нажата (код клавиши) ?
Меня интересует можно ли это сделать в С/C++ программке
(пишется не для Х-ов).

Есть какие-нибудь фунции для этого ?
Где можно об этом прочитать ?
Или это уже нужно писать на ассемблере ?

anonymous
()

Настраиваешь терминал (info libc), переводишь клавиатуру в raw-режим (man console-ioctl) и читаешь stdin. Не будет работать на pts и прочих квази-терминалах (только на консоли).

nobody ★★
()

A esli porobowat' funktoin
char * readline (char *) ; ?????
(from #include <readline/readline.h> )

anonymous
()
Ответ на: комментарий от nobody

Ну так зачем человеку какашки советовать? Кому на фиг нужна эта консоль? Давить приложения, завязанные на линьюховую консоль! Короче, man ncurses.

anonymous
()

ncurses - это для обычного app, а если делаешь что-то нетривиальное, то надо лезть глубоко в систему и все делать руками - по определению. А твое заявление - не более чем попытка спорить о вкусах. Иди в top10 и пофлэйми там на эту тему.
ЗЫ: я ничего не советовал, я на вопрос ответил. Разницу улавливаешь?

nobody ★★
()

Дык вот - НЕЛЬЗЯ делать нетривиальные вещи с консолью. Так как, к примеру, на машине без консоли вообще твое глюкало нетривиальное просто сломается. Зайдет, к примеру, по ssh человек, запустит твой отстой, а он и скажет - пшел на фиг, хочу локальную консоль. Здорово, правда? Вот по этой причине такие вещи, о которых ты говоришь, в приличном обществе даже упоминать запрещено - по морде за такое бьют.

anonymous
()

Ну странный ты. Во-первых, тебя что, заставляют? Не нравится прога - не юзай, дело вкуса, че орать-то? Во-вторых, если _тебе_ не надо, то это еще не значит, что _никому_ не надо. Ты, похоже, из тех, кто будет кричать, что все проги для записи CD - отстой. Потому что не работают при отсутствии пишущего девайса, хотя должны, мол, писать на обычный CD_ROM. Что, не согласен? Пример-то тот же самый, что и ты привел. Далее, если все, что мне нужно - это сканкоды в реалтайме, а вывод идет на fbdev, то нафига мне ncurses? И последнее: слова "X Window" ты когда-нибудь слышал? Как ты думаешь, x-server работает с клавой через ncurses или читает scancodes с консоли в raw-режиме?

nobody ★★
()
Ответ на: комментарий от nobody

Ты - глуп. Человек, задавший этот вопрос, явно этих тонкостей не знает. И, следуя твоему абсолютно ламерскому совету (то, что он хочет, нормальными терминальными средствами вполне решаемо), он может по незнанию сделать какашку. P.S. Мочить ногами таких ламаков, как ты, которые лабают непортабельный софт.

anonymous
()

По делу:
1) Чел получил 2 ответа на свой вопрос - от тебя и от меня. Какой вариант выбрать - решит сам, исходя из того, что ему нужно.
2) Ничего непортабельного не будет, если не делать второй шаг (ioctl() для перевода клавы в raw). Будут "нормальные терминальные средства".
3) Я дал техническую информацию. Ты считаешь, что это знание может принести вред прочитавшему. А я считаю, что чем больше инфы - тем лучше.

Не по делу:
1) Еще раз повторяю: я ничего не советовал. До тебя не доходит?
2) Даже не пытайся давить на программера, чтобы он писал код так, как тебе нравится, если ты ему не начальник и не заказчик. Программеру на тебя и твое мнение наплевать. Писать портабельно или нет - решать ему. Определяется это требованиями заказчика.
3) Еще одна мессага от тебя в том же стиле - будешь флеймить сам с собой. Учись вести корректные дискуссии.

nobody ★★
()

См. ответ в треде "need lib".

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.