社区
C++ 语言
帖子详情
请教如何在linux命令行中通过键盘上下键读取一个文本文件的一行显示在命令行中
melamelascx
2007-04-13 01:32:46
并且当读取显示下一行的时候能够将上一行的内容消去掉?就像输入命令的时候可以通过上下键把以前输入过的命令显示出来一样,3x~~
...全文
1071
12
打赏
收藏
请教如何在linux命令行中通过键盘上下键读取一个文本文件的一行显示在命令行中
并且当读取显示下一行的时候能够将上一行的内容消去掉?就像输入命令的时候可以通过上下键把以前输入过的命令显示出来一样,3x~~
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
melamelascx
2007-04-13
打赏
举报
回复
wen ti jie jue!!!
as freshui said!
3x all!!!!
freshui
2007-04-13
打赏
举报
回复
getch() 不用通过回车判断
他就是等待你敲一个字符的
不过这里键盘的上下键是不刻显示字符, 要比较ascII马或者是键盘映射的码值 多少忘了
sinall
2007-04-13
打赏
举报
回复
好像可以,看看tput命令吧。
melamelascx
2007-04-13
打赏
举报
回复
虽然还没有尝试,但是5月的风所说的就是我想表达的意思,但是不知道如何不通过敲回车来判别上下键
melamelascx
2007-04-13
打赏
举报
回复
谢谢楼上各位,没想到牵涉这么多东西,那如果仅仅想通过不敲回车来获取键盘输入的内容,这个有办法实现吗?
freshui
2007-04-13
打赏
举报
回复
hehe 看样子挺难啊
你这样行不? 没实现过
通过按上下键, 将读取文件的指针移到文件上一行或者下一行的开头, 然后将该行print出来,
print的时候用\b\r吧, 请掉当前屏幕行并移动指针到屏幕当前行开头
我觉得这样能实现, 而且应该挺简单的...
我觉得也不用搞那么复杂
getch() 之后 一个case语句, printf函数 即可搞定
凌殿Y_ST
2007-04-13
打赏
举报
回复
命令列表可以一次载入到一个数组中去,而获取键盘输入事件,可以通过getchr()或相关的取字符的函数,但比较的时候,是用扫描码,而不是ASCII,因为上下键没有定义ASCII;另一个可以用清屏函数来清除前面的显示内容,具体函数我也忘了,有时间我去试试看好不好实现。
iambic
2007-04-13
打赏
举报
回复
保存记录,键盘映射,终端读写。
覆盖屏幕内容用curses库。
google curses.h
动手前确认你确实需要这样的功能。
al0n9
2007-04-13
打赏
举报
回复
linux下面,没有键盘输入事件这个概念。
linux下面,有前台程序和后台程序的概念。只有前台程序,才能得到键盘输入,操作系统会把键盘扫描码放到前台程序的输入缓冲区中。在任一时刻,每个控制台只能有一个程序是前台程序。
你必须在自己的程序中读取用户的按键,然后调用终端控制函数,实现回滚功能。回滚的功能,是由各个终端提供的函数来完成的,实际上,就是向终端发送一些控制码,终端收到这些控制码之后,就能做出回滚、颜色加亮等的动作。
但是,这些控制码,各个终端之间并不是完全通用的,所以,你必须通过终端控制函数来控制终端。
melamelascx
2007-04-13
打赏
举报
回复
原来这么复杂啊,如果在命令行中,运行我的程序后,这时通过摁一下 上下键 就能显示一行内容,并且每次现实的内容都能覆盖原来屏幕上的那一行内容,这样还这么复杂吗?如何实现阿?其实核心问题是不知倒如何获取键盘输入事件,另外一点是不知道如何将已经显示到屏幕上的内容给用心的内容覆盖掉,用c++实现
凌殿Y_ST
2007-04-13
打赏
举报
回复
我给出一个大概实现的思路,具体的没去试过:
=================================
1、先打开一个命令列表文件,从0行开始,并设定index = 0;
2、用switch...case...操作上下选择方向;
3、行取出命令串,并回显在屏幕上;
4、取得Enter按键时,用execl()调用命令串,实现命令的执行;
5、<<有待实现>> ^o^
凌殿Y_ST
2007-04-13
打赏
举报
回复
linux还没这种功能吧?! -_-!!!
history是已经运行过的命令,并以列式保存在shell缓冲区中的~
不过这种功能还是可以实现的!~
Linux
键
盘
输入
读取
本文详细介绍了在
Linux
系统
中
如何找到
键
盘
设备,并通过
读取
/dev/input/eventX来获取按
键
信息。通过cat /proc/bus/input/devices可以找到
键
盘
对应的event设备。接着,文章展示了如何
读取
按
键
事件,包括按
键
的按下、松开和按住状态,并提供了
读取
按
键
的C代码示例。代码
中
还处理了多按
键
同时按下可能导致的事件覆盖问题,通过回调函数实现按
键
状态的实时回调。最后,给出了
一个
简单的主函数示例来注册回调函数。
linux
读取
键
盘
上下左右
键
小程序
本文介绍了
一个
简单的
Linux
程序,用于
读取
键
盘
上的上下左右方向
键
,并解释了如何处理特殊的按
键
序列以及如何利用signal()函数响应Ctrl+C组合
键
。
在
linux
中
如何用C语言实现
读取
“上下左右、ESC”
键
本文介绍了如何在
Linux
系统
中
使用C语言编程来
读取
键
盘
上的特殊
键
,如上下左右箭头
键
和ESC
键
。通过示例代码展示了具体的实现方法。
linux
哪个命令可以分页
显示
大
文本文件
,
linux
分页
显示
命令的12个使用案例
本文详细介绍了在
Linux
系统
中
如何使用more和less命令进行文件内容的分页
显示
。more命令常用于简单地按页
显示
文件,支持从特定行开始
显示
和设置屏幕大小。less命令则提供了更丰富的交互功能,如搜索、上下滚动、
显示
百分比等,并允许用户在查看文件时直接编辑。此外,还提到了head和tail命令用于
显示
文件的头部和尾部内容。
linux
查看
文本文件
命令_在
Linux
命令行
上使用更多内容查看
文本文件
本文介绍在
Linux
中
如何使用more命令查看
文本文件
。more命令允许用户逐页浏览长
文本文件
,通过空格
键
翻页,使用'/'进行文本搜索,并能与ls、grep等命令结合使用,方便处理大量数据。
C++ 语言
65,213
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章