gpt4 book ai didi

c - 刷新行为 (nCurses)

转载 作者:太空宇宙 更新时间:2023-11-04 04:14:50 25 4
gpt4 key购买 nike

我最近在研究 ncurses,一个疑问突然袭来:刷新函数到底做了什么?

我搜索了一下,阅读了一些教程甚至文档,我的结论是它使用在“缓冲屏幕”上完成的格式“刷新”实际屏幕(它只是更新屏幕上的输出)。

做了一些测试,我清楚地意识到我错了,因为输出出现时有和没有刷新功能!下面是一个简单的程序,我只是为了测试它而做的,我无法实现这个功能的实际功能。

#include <ncurses.h>
#include <string.h>

int main() {
char mesg[] = "Just a String";
int row, col;

initscr();
getmaxyx(stdscr, row, col);

while(true) {
refresh();
mvprintw(row/2, (col - strlen(mesg))/2, "%s", mesg);

mvprintw(row-2, 0, "This screen has %d rows and %d columns\n", row, col);

char c = getch();
if (c == 'e') { row++; }
else if (c == 'q') { row--; }
else if (c == 'a') { col--; }
else if (c == 'd') { col++; }
}

getch();
endwin();

return 0;
}

我在整个程序中移动了刷新,我删除了它,但似乎没有任何改变。它到底有什么作用??

最佳答案

getch 函数调用 refresh,这可能会让您移动感到困惑em> 显式调用 refresh 到不同的地方。

诅咒功能写入虚拟屏幕(即,不是真实的)并且刷新更新物理屏幕(真实的)通过比较两者并进行小的更改(如果可能)。

关于c - 刷新行为 (nCurses),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53251589/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com