1 / 2
文档名称:

ncurses编程入门2.doc

格式:doc   大小:19KB   页数:2页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

ncurses编程入门2.doc

上传人:xzh051230 2019/5/2 文件大小:19 KB

下载得到文件列表

ncurses编程入门2.doc

相关文档

文档介绍

文档介绍:欢迎来到ncurses的世界。在我们踏上学****ncurses的路途之前,让我们先写一个小程序,来了解一下应用ncurses库所编写程序的结构。,,就是要在C或C++程序开头添加“#include<>”,然后在链接时标记lncurses参数。(注:ncurses库已经包含“”)#include<>。。。编译和连接命令:gcc<程序文件>lncurses例1:HelloWorld!!!程序#include<>intmain(){ initscr()?/*初始化,进入NCURSES模式*/ printw("HelloWorld!!!")?/*在虚拟屏幕上打印Hello,World!!!*/ refresh()?/*将虚拟屏幕上的内容写到显示器上,并刷新*/ getchar()?/*等待用户输入*/ endwin()?/*退出NCURSES模式*/ return0?}“HelloWorld!!!”后等待用户按任意键退出。这个小程序展示了如何初始化并进入curses模式、处理屏幕和退出curses模式。让我们逐行的分析这个小程序:()函数initscr()函数将终端屏幕初始化为curses模式。它用来清除屏幕上所有的字符,并等待下一部处理。所以在调用其它的curses函数前,要先调用initscr()函数初始化屏幕。这个函数初始化了curses系统并且为当前屏幕(也就是“stdscr”)和相关的数据结构分配内存。在以前的计算机上曾经出现过一个极端的例子:因为系统中的可用内存太小,以至于initscr()函数无法分配足够的内存给相关的数据结构,从而导致curses系统初始化失败。在以后的章节中我们将介绍如何定制屏幕的初始化模式。()函数第二行的printw()函数用于把字符串“Hello,World!!!”输出到虚拟的屏幕上。这个函数在用法上和printf()函数很像。不同的是:printw()函数把字符串输出到“stdscr”的虚拟窗口坐标(0,0)上(从显示的结果来看,坐标(0,0)在屏幕的左上角上)。现在该说说这个神秘的refresh()函数了。在我们使用printw函数打印“HelloWorld!!!”时,实际上这个消息打印到了一个叫作“stdscr”的虚拟窗口上,没有被直接输出到屏幕上。printw()函数的作用是不断将一些显示标记和相关的数据结构写在虚拟显示器上,并将这些数据写入stdscr的缓冲区内。为了显示这些缓冲区中的数据我们必须使用refresh()函数告诉curses系统将缓冲区的内容输出到屏幕上。通过这种机制程序员能够不断在虚拟屏幕上写数据。然后调用refresh()函数让输出的操作看起来是一次完成的。因为refresh()函数只核查窗口和数据中变动的部分,这种富有弹性的设计提供了一个高效的反馈机制。但是这有时很打击初学者的积极性。因为对于初学者来说忘记在输出后调用refresh()函数是很恼人的错误。不过不用担心,很多人都会犯这样的错误。