问题标签 [ncurses]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
5838 浏览

c++ - 使用 Eclipse CDT 调试 ncurses

我正在使用 Eclipse CDT 中的 ncurses 编写 C++ 应用程序,但是我无法在 eclipse 中运行/调试我的应用程序,因为 eclipse 中的控制台不适用于 curses。如果我从终端运行我的应用程序运行良好,但我只是添加了一些新代码,现在我遇到了分段错误,所以我想使用 eclipse 中的调试器来帮助我解决问题。有没有办法让 eclipse 运行/调试我的应用程序,但使用不同的终端进行输出,就像在 gdb 中执行“tty /dev/pts/1”时一样?或者在 Eclipse 中调试 ncures 应用程序的任何其他方式?

提前谢谢!

0 投票
5 回答
6312 浏览

c - 如何在做其他事情的同时从键盘获取输入?

我正在使用 C (gcc) 和 ncurses 来制作一个程序,该程序将监视来自串行端口的数据。该程序有一个很大while的,它读取来自端口的数据,同时在屏幕上打印该信息......

但问题就在这里:

它如何从我的键盘读取输入(因为getch()冻结程序直到它获得输入)并同时读取来自端口的信息?

也许我必须使用另一种方式(不是大的while),所以欢迎提出想法!

0 投票
2 回答
166 浏览

c++ - 以最新优先格式显示日志数据

我喜欢以后一种形式保存日志数据(与大多数博客和新闻网站组织帖子的方式相同)。

我最熟悉的语言是 C++ 和 Python:有没有办法将日志数据输出到屏幕(stdout)或最新条目始终位于顶部的文件?

或者是否有一种修改方式tail以向下滚动而不是向上滚动的方式显示最新行?

这是否需要一个窗口系统 ncurses

0 投票
2 回答
6710 浏览

python - Linux:通过管道输入 Python (ncurses) 脚本、标准输入和 termios

显然,这几乎是“从 python 中的标准输入读取时出现错误的管道文件描述符 - 代码日志”的副本;但是,我相信这种情况稍微复杂一些(并且它不是特定于 Windows 的,因为该线程的结论是)。

我目前正在尝试在 Python 中尝试一个简单的脚本:我想为脚本提供输入 - 通过命令行参数;或通过“管道”将字符串添加到此脚本 - 并让脚本使用curses终端界面显示此输入字符串。

下面给出了完整的脚本,这里称为testcurses.py。问题是,每当我尝试实际管道时,这似乎会弄乱标准输入,并且curses窗口永远不会显示。这是一个终端输出:

据我所知,问题是: - 每当我们将字符串导入 Python 脚本时,Python 脚本都会丢失对终端的引用as stdin,并注意到被替换stdin的不再是termios结构 - 因为stdin不再是终端,curses.initscr()立即退出而不渲染任何东西。

所以,我的问题是 - 简而言之:我能以某种方式实现,语法echo "blabla" | ./testcurses.py -最终显示管道字符串curses吗?更具体地说:是否可以stdin从 Python 脚本中检索对调用终端的引用,即使该脚本正在“管道”到?

在此先感谢您的任何指点,

干杯!

 

 

PS:testcurses.py脚本:

0 投票
1 回答
26040 浏览

c++ - 使用 ncurses 创建一个函数来检查 Unix 中的按键

我一直在寻找类似的东西,kbhit()并且我已经阅读了几个关于这个主题的论坛,大多数人似乎都建议使用 ncurses。

我应该如何使用 ncurses 检查是否在 C++ 中按下了某个键?

ncurses 提供的函数getch()从窗口中读取一个字符。我想编写一个只检查是否有按键然后我想做的函数getch()

0 投票
3 回答
354 浏览

c - 为什么有多个定义?为什么没有定义其他引用?这真的很基本,我错过了什么?

我有一个需要编译的小项目。我有一个头文件和一个我创建的源代码,以及一个几乎为空的包含我的头文件的 driver.c。
观察:

现在我的实现文件:

现在包含我的标头并提供 main() 的驱动程序:

我的 bash 命令:

我回来了:

我只是想指出我可以在哪里编译它,然后开始把我的头发扯掉,因为我所有的段错误。我的设置有什么问题?我在 Gnu C 编译器上进行 RTFM 显然我正在做我应该做的事情,即在 iol.h 中声明东西,在iol.c定义然后在driver.c中使用它,这可能是非常微不足道的东西,也许我只需要第二眼: 我实际上得到了一长串错误,如果有人认为这是相关的,我很乐意发布整个源。

0 投票
1 回答
535 浏览

user-interface - 是否有与 Python 3 兼容的终端小部件库?

我正在寻找一个终端 UI 库,提供与 python3 兼容的按钮、复选框等小部件。

我试过了:

  • pycdk(pyrex 不适用于 python3,移植起来很麻烦)
  • urwid(不适用于 python3,它有一个端口,但不能很好地与新的 curses 接口一起使用)。

有人知道这样的图书馆吗?

谢谢!

0 投票
3 回答
602 浏览

ncurses - 诅咒中占据一定空间的角色如何保存?

我开始尝试用 C++ 用 curses 制作一些简单的控制台游戏,我的第一个项目只是一个可以在里面走动的大房间。我想我将通过让程序保存正方形的状态来实现行走角色在走,所以当他走到下一个方格时,它可以恢复那里的任何东西。问题是,我不知道如何将某个位置的字符保存到变量中,令我惊讶的是,我似乎找不到任何全面的诅咒文档。我正在寻找这样的功能:

int storage = mvsavechar(1,1);

有没有这样的功能?

0 投票
2 回答
541 浏览

c++ - 用于分段错误的 finally 块 (C++)

我正在使用 ncurses,每当我遇到段错误时,ncurses 都不会正确释放对终端的控制(因为从未调用过 endwin())。我设置了一个信号处理程序:

但这样做的问题是段错误被忽略,而不是延迟到 endwin() 之后。我对 C++ 很陌生;可以像异常一样捕获段错误,以便我可以有一个 finally 块?或者有没有办法从处理程序内部重新发送段错误?

0 投票
1 回答
1548 浏览

linux - 检测诅咒中的自动键重复

我正在Linux 上使用curses 编写一个小文本模式应用程序。

对于键盘输入,我使用 curses 函数。按键自动重复工作,例如,如果我按住一个按键,我会收到多个按键事件,直到我再次释放按键。

是否也可以区分真正的按键事件和按键重复逻辑生成的事件?

背景:该应用程序是一个小的数据输入前端,用户可以在其中修改某些参数的整数。从长远来看,该应用程序将在没有标准键盘的情况下工作。我将只有四个用于数据输入的按钮:“增加”、“减少”、“确定”和“取消”。

由于数字范围很大,我想知道用户是否按住键。如果他这样做,我可以通过不将我的数字增加 1 而是增加 10 或 100 来更快地扫描我的数字范围。如果用户 otoh 轻按该键,则输入法应该再次精确,只需将数字增加/减少 1。

这可以通过curses的键盘输入功能实现吗?