Обнаружение клавиш со стрелками через стандартный поток ввода в LINUX

Я пытаюсь реализовать командную строку для своего инструмента, и я хочу, чтобы пользователь мог легко получить предыдущую команду, нажимая клавиши со стрелками вверх / вниз, как в терминале.

#include <iostream>
#include <string>
#include <vector>
int main(int argc, char** argv){
std::vector<std::string> stack;
std::string buffer;
std::string str;

while(1){
buffer.clear();
str.clear();
std::cout<<"cmd>";
while(std::cin.peek() != '\n'){
std::cin >> buffer;
if(!str.empty()){
str += ' ';
}
str += buffer;
}

if(str == "quit"){
break;
}
else{
stack.push_back(str);
}
std::cout<<"Stack: ";
for(int i = 0;i < stack.size();i++){
std::cout<<stack[i]<<"->";
}
std::cout<<std::endl;
std::cin.clear();
std::cin.ignore();
}
return 0;
}

Пока это выглядит примерно так, но я не знаю, как обнаружить клавиши со стрелками. Я знаю, что для этого не существует стандартного C ++ способа, и я согласен с решением только для Linux.
Какие-нибудь мысли?

1

Решение

Использовать этот: Ncurses
Google для нескольких простых примеров, как обнаружить стрелки

0

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

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector