标签:echo max 不显示 clu clear 状态 并且 article tty
1、initscr()函数:
1 initscr()用于初始化ncurses数据结构并读取正确的terminfo文件。内存将被分配。 2 3 如果发生错误,initscr将返回ERR,否则将返回指针。 4 5 此外,屏幕将被删除并初始化。
2、getyx() 函数:
getyx() 函数可以用来取得当前光标的位置。并把它存储在传递给它的两个变量中。
3、vprintw()函数:
在指定的坐标输出
4、refresh()函数:
更新终端屏幕
5、endwin()函数:
1 endwin()将清除ncurses中所有已分配的资源,并将tty模式恢复为调用initscr()之前的状态。 2 必须在ncurses库中的任何其他函数之前调用他,并且必须在程序退出之前调用endwin() 3 当您想要输出到多个终端时,可以使用newterm(...),而不是initscr()
下面的代码可以实现一个小球滚来滚去
1 #include <ncurses.h> 2 #include <unistd.h> 3 4 #define DELAY 30000 5 6 int main(int argc, char *argv[]) 7 { 8 int x = 0; 9 int y = 0; 10 int max_x = 0,max_y = 0; 11 int next_x = 0; 12 int direction = 1; 13 14 initscr(); /* 初始化屏幕 */ 15 16 noecho(); /* 屏幕上不返回任何按键 */ 17 18 curs_set(FALSE); /* 不显示光标 */ 19 20 /* getmaxyx(stdscr, max_y, max_x);/* 获取屏幕尺寸 */ 21 22 mvprintw(5, 5, "Hello, world!"); 23 24 refresh(); /* 更新显示器 */ 25 26 sleep(1); 27 28 while(1) 29 { 30 getmaxyx(stdscr, max_y, max_x);/* 获取屏幕尺寸 */ 31 clear(); /* 清屏 */ 32 mvprintw(y, x, "O"); 33 refresh(); 34 35 usleep(DELAY); 36 37 next_x = x + direction; 38 39 if(next_x >= max_x || next_x < 0) 40 { 41 direction = (-1) * direction; 42 } 43 else 44 { 45 x = x + direction; 46 } 47 } 48 endwin(); /* 恢复终端 */ 49 }
参考博客:https://blog.csdn.net/weixin_38184741/article/details/86065784?utm_medium=distribute.pc_relevant_download.none-task-blog-baidujs-2.nonecase&depth_1-utm_source=distribute.pc_relevant_download.none-task-blog-baidujs-2.nonecase
参考博客:[https://www.viget.com/articles/game-programming-in-c-with-the-ncurses-library/]
标签:echo max 不显示 clu clear 状态 并且 article tty
原文地址:https://www.cnblogs.com/zhongllmm/p/14253908.html