首页 > 解决方案 > Ncurses 表单字段可以“无垫”吗?

问题描述

我正在为交流应用程序使用 Ncurses 表单。我的问题是,当我读取从表单中检索到的字段时,它们会被空格填充,而我需要有“正确”的字符串(例如,我不能修剪密码字段中的尾随空格)。有一种优雅的方法可以做到这一点,或者有没有办法检索长度,所以我可以在正确的字符处立即修剪它?

标签: cncurses

解决方案


您可以通过维护一个字段缓冲区来做到这一点,该缓冲区以您要检索的格式存储字符串)。ncurses-examples 中的 demo_forms.c 程序就是这样做的。代码中的注释

/*
 * Define each field with an extra one, for reflecting "actual" text.
 */
static FIELD *
make_field(const char *label, int frow, int fcol, int rows, int cols)
{
    FIELD *f = new_field(rows, cols, frow, fcol, o_value, 1);

1传递给的参数new_field额外缓冲区的数量)。

(有关详细信息,您必须阅读源代码和手册页:教程不在此处...)


推荐阅读