我正在尝试使用ncurses在C中编写一个简单的聊天应用程序,这两个我都是PHP新手。 (是的,我知道。谢谢。我会把这个建议铭记于心。请放下枪支。)
我试图做的是创建两个窗口,一个用于输入,一个用于通道文本,如下所示:
int termwidth = getmaxy(stdscr);
int termheight = getmaxx(stdscr);
WINDOW *channel = newwin(termwidth, termheight - 1, 0, 0);
scrollok(channel, TRUE);
WINDOW *input = newwin(termwidth, 1, termheight + 1, 0);
scrollok(input, TRUE);
然后将光标位置设置为输入:
wmove(input, 0, 0);
为了将输入的输入放在第二个窗口中,该窗口应占据终端底部的一列,而输出则出现在填充终端空间其余部分的第一个窗口中。
输出出现以正确填充顶部窗口(通道),输入光标在适当的位置闪烁,但更改其大小不会产生可预测的结果,并且输入的输入似乎不是完全进入输入窗口。
完整的来源可在此处找到:http://pastebin.com/X8apHUgh
总结一下,我问为什么输入会出现意外行为,为什么绘制“频道”窗口会产生奇怪的结果。
答案 0 :(得分:4)
哦,[咒骂/删除]!我是个笨蛋。事实证明我的问题是双重的:
这意味着定位工作正常,直到我对基本定位数学做了一些假设。
我应该补充一点,这部分是因为我在X / Y位置上构思终端定位,其中行/列是适当的范例。它们只是部分相同。
自拍慢拍