从(n)个诅咒形式获取数据

问题描述 投票:0回答:2

我试图在(n)curses应用程序中使用表单扩展名,并且在检索输入的数据时难以处理。表单文档中提到了该功能:

char *field_buffer(FIELD *field,          /* field to query */
                   int bufindex);         /* number of buffer to query */

但随后警告:

在当前未选择输入的字段上调用field_buffer()将返回正确的值。在以下字段上调用field_buffer()当前选择用于输入的内容不一定提供正确的字段缓冲区值,因为输入的数据不一定复制到缓冲区中退出验证检查前为零。保证退换缓冲区值反映屏幕上的实际情况,请调用field_buffer()(1)在该字段的退出验证检查例程中,(2)从该字段的或表单的初始化或终止挂钩,或(3)REQ_VALIDATION请求已由表单驱动程序处理。

看来确实如此。

我的情况是:

  1. 创建表单和字段
  2. 处理用户输入
  3. 当按下Enter键时,处理表单数据并退出表单

根据文档,从未选择的字段中检索缓冲区数据是正确的,但是从最后一个字段中检索数据是不正确的(因为该字段仍处于选中状态且未终止)。>>

我从文档中看不到如何强制终止字段(或强制更新缓冲区内容)。

我试图在(n)curses应用程序中使用表单扩展名,并且在检索输入的数据时难以处理。表单文档中提到了该功能:char * field_buffer(FIELD ...

ncurses curses
2个回答
0
投票

我现在正面临着同样的事情,只是想出了在通过field_buffer获取值之前,我可以只关注表单中的下一个字段。所以当按下回车键时,我叫form_driver(form,REQ_NEXT_FIELD);然后使用field_buffer()访问值时,当前活动字段的缓冲区将正确更新。


0
投票

您可能想调用

© www.soinside.com 2019 - 2024. All rights reserved.