Ncurses getnStr 与现有的基本字符串

Ncurses getnStr with existing base string

我编写了一个程序,它使用 ncurses 作为 UI 和函数 mvwgetnstr 从 window 中读取字符串。我想允许用户对他们输入的文本进行编辑,这样如果他们输入 foo,他们可以稍后返回并附加 bar。我不知道如何使用 curses API 执行此操作,getnstr 函数只接受一个字符缓冲区和长度变量。有任何想法吗?我开始制作自己的字符串输入函数,但很难将所有内容都限制在 window.

这取决于你想要什么。组织程序的方法有很多种:

  • getnstr 从标准屏幕读取缓冲区 (a window)
  • wgetnstr 函数接受来自给定 window 的缓冲区。使用单独的 window(或 subwindow)可以减少已编辑缓冲区的更新干扰屏幕上其他内容的问题。
  • getnstr 编辑很粗糙。如果您使用 form 库(它又使用 ncurses),那么您可以做的不仅仅是输入缓冲区末尾的 append/remove 个字符。
  • 编写您自己的输入函数,这可能会变得复杂。 dialog 程序就是这样做的。

ncurses-examples 可能有助于阅读和了解如何构建合适的输入函数。