Как я могу прочитать вставленную (вставленную) строку Shift + в Linux / g ++?

Я умею читать клавиатуру в Linux без остановки (вроде kbhit() поведение под виндой). Итак, всякий раз, когда он возвращается, я знаю, что есть действие нажатия клавиши.

Тогда я попытаюсь прочитать ключ через getch() функция.

Мой вопрос заключается в том, что после нажатия на клавиатуре, как я мог знать, что комбинация клавиш Shift + Insert (вставить ярлык как Ctrl+В делает в винде) нажимается?

-1

Решение

Как уже отмечалось, нет глобально переносимый способ чтобы сделать это, потому что:

  • кроме особого случая специфичной для Linux программы, которая использует специальные вызовы для обнаружения ключ-прессы, ваша программа будет только увидеть вставленный текст — никаких подсказок о том, как он туда попал.
  • аналогичным образом не будет никакой подсказки, когда заканчивается вставка (вставки не должны заканчиваться символом новой строки, они могут быть словами, пробелами и т. д.).

Вместо этого реальным решением было бы использование терминов POSIX, чтобы заставить поток ввода вашей программы работать в необработанном режиме, и установить таймаут для чтения. Затем программа могла читать символы до тех пор, пока они появлялись «достаточно быстро» (ваше решение о том, как быстро).

Эти связанные вопросы показывают некоторые примеры терминов POSIX, включая использование тайм-аутов:

В качестве альтернативы, есть select вызов:

0

Другие решения


По вопросам рекламы [email protected]