通过LINUX上的标准输入流检测箭头键
Detecting arrow keys via the standard input stream on 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的解决方案。有什么想法吗?
使用此:ncurses谷歌搜索一些简单的例子如何检测箭头
相关文章:
- 如何忽略输入流中的某些字符?
- 从标准输入读取文件后读取用户输入
- 如何从标准输入中检测格式化输入错误?
- C++ - 标准输入环路
- 快速读取标准输入缓冲区,无需检查
- 在命名管道中发送标准::字符串流
- 将标准输入中的双精度存储在矢量中
- 如何将 getline 与标准输入一起使用?
- 从 C++ 中的标准输入迭代读取字节
- C++输入流.与 cin unget() 函数有点混淆
- 从输入流中读取行,并能够跳过块
- C++计算标准输入的字数
- 流对象来表示文件输入,然后是标准输入?
- 提升输入流错误.如何将标准:矢量的动态矢量另存为 XML 文件
- 标准C++输入输出流必须如何处理intXX_t类型
- 检查输入是否为标准输入流
- boost::精神与非标准(非字符串)输入流
- 使用标准输入流会导致编译失败
- 通过LINUX上的标准输入流检测箭头键
- 如何从标准输入流中解析用户输入