![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| snsh |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 27.12.2006 Репутация: нет Всего: нет |
Уважаемые форумчане!
Подскажите, может кто сталкивался с проблемой. Стоит задача создания консольного приложения. При этом предполагается довольно большой объем вводимых с клавиатуры данных, которые между собой будут довольно сильно похожи. Напрашивается вопрос - как можно это реализовать? В shell'ах Linux'а или в ДОС-окне нажатие стрелки вверх вызывает последнюю команду, еще раз вверх - предпоследнюю команду и т.д. При этом эти команды после такого вызова на экран можно редактировать (именно это мне и нужно). Как помещать в некий стек (будь то в виде массива или файла) введенные команды, я понимаю. Как потом мне не просто выводить последнюю команду, а иметь возможность ее редактировать? Т.е., строка команды из некоего стека должна не просто выводиться на экран, а типа как эмулировать клавиатурный ввод. В командных оболочках это называется, по-моему, command history. |
|||
|
||||
| Любитель |
|
|||
|
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 24 Всего: 92 |
Надо с операционкой определиться. Кроссплатформенного решения по работе с консолью как ни странно нет (по крайней мере из известных).
|
|||
|
||||
| snsh |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 27.12.2006 Репутация: нет Всего: нет |
ОС - Windows XP
|
|||
|
||||
| Любитель |
|
|||
|
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 24 Всего: 92 |
На вскидку не помню (могу дома с оффлайновой MSDN-кой найти). Как вариант - ReadConsoleInput и собственная колбэк-функция для клавиатуры. А также SetConsoleCursorPosition. Ну и, конечно, инклюда на wincon.h.
В Viste вроде появились АПИ-функции для команд-хистори. Проверить сие негде (висты у меня нету). |
|||
|
||||
| snsh |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 27.12.2006 Репутация: нет Всего: нет |
Понятно. Буду весьма признателен, если поможете мне и уточните. Спасибо.
|
|||
|
||||
| Любитель |
|
|||
|
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 24 Всего: 92 |
Завтра, вероятно, принесу примерчик - устроит?
|
|||
|
||||
| snsh |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 27.12.2006 Репутация: нет Всего: нет |
ДА!!!
|
|||
|
||||
| regis |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 232 Регистрация: 12.12.2005 Где: Москва, Россия Репутация: 2 Всего: 7 |
Есть еще такая библиотечка, как GNU readline. Вроде бы кроссплатформенная.
--------------------
В. В чем разница между hardware и software?О. В отличие от второго, по первому можно двинуть кулаком или пнуть ногой. |
|||
|
||||
| Rockie |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1143 Регистрация: 23.4.2006 Репутация: 8 Всего: 31 |
snsh, есть функции перемещения курсора, с ними и работай. Задача учебная? Потому как если нет - почему бы не заюзать возможности Win XP - по крайней мере уже есть ctrl+C, ctrl+V, shift+Home и так далее.
-------------------- Чтобы иметь большой гардероб - надо иметь большой гардероб. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |