| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Программирование под Unix/Linux > Чтение из stdin только одного символа |
| Автор: niXman 7.10.2009, 04:00 | ||
| Здравствуйте. Подскажите, как мне реализовать следующую задачу. Программа, ожидает ввода символа и ентера. Но если в консоль ввести больше одного символа, то в цикле читаются они все по очереди. Код:
Нужно чтоб читался только первый введенный символ. |
| Автор: svlary 7.10.2009, 06:09 | ||
Это не Ваша ПРОГРАММА ждет. Это ждет драйвер терминала, который работает в КАНОНИЧЕСКОМ режиме.. Если Вам реально нужен ввод с немедленной передачей нажатых клавиш в программу, то есть два решения проблемы : 1) Перевести терминал в режим сырого (Не канонического) ввода. Читайте man tcsetattr 2) Воспользоваться библиотекой ncurses или подобной. Первый путь сулит Вам немало увлекательных приключений. По второму - надо просто внимательно прочитать доку по библиотеке. |
| Автор: niXman 7.10.2009, 20:56 |
| Значит других вариантов нет? |
| Автор: svlary 13.10.2009, 06:16 | ||
Я думаю - нет. Либо
|
| Автор: Loki 13.10.2009, 15:52 |
| есть, можно из сокета читать и там типо свой tty реализовать ну или просто свой bash на имеющемся tty. |
| Автор: sdukshis 18.10.2009, 10:45 | ||
Может я не правильно понял вопрос, но почему не сделать просто:
|