⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 6第六章:一些类似printw()的输出函数.htm

📁 curses界面编程
💻 HTM
📖 第 1 页 / 共 4 页
字号:
 lang=EN-US style='font-family:Tahoma'>6.3.4</span></b></st1:chsdate><b><spanlang=EN-US style='font-family:Tahoma'>.</span></b><b><span style='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>一个简单的</span></b><b><span lang=EN-US style='font-family:Tahoma'>printw()</span></b><b><spanstyle='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>函数的使用例子(</span></b><b><span lang=EN-USstyle='font-family:Tahoma'>A Simple printw example</span></b><b><spanstyle='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>)</span></b><b><span lang=EN-US style='font-family:Tahoma'><o:p></o:p></span></b></p><p class=MsoNormal style='margin-left:10.5pt;mso-para-margin-left:1.0gd'><b><spanstyle='font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>例</span></b><b><spanlang=EN-US style='font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:Tahoma'>3</span></b><b><spanstyle='font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>:一个简单的</span></b><b><spanlang=EN-US style='font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:Tahoma'>printw()</span></b><b><spanstyle='font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>函数的使用例子</span></b><b><spanlang=EN-US style='font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:Tahoma'><o:p></o:p></span></b></p><p class=MsoNormal style='margin-left:10.5pt;mso-para-margin-left:1.0gd'><spanclass=inlinemediaobject><b><span lang=EN-US style='font-family:Tahoma'>#include&lt;ncurses.h&gt;<span style='mso-tab-count:3'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></b></span><spanclass=inlinemediaobject><span lang=EN-US style='font-family:Tahoma'>/*ncurses.h </span></span><span class=inlinemediaobject><span style='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>已经包含了</span></span><span class=inlinemediaobject><span lang=EN-USstyle='font-family:Tahoma'>stdio.h */<b><o:p></o:p></b></span></span></p><p class=MsoNormal style='margin-left:10.5pt;mso-para-margin-left:1.0gd'><spanclass=inlinemediaobject><b><span lang=EN-US style='font-family:Tahoma'>#include&lt;string.h&gt; <o:p></o:p></span></b></span></p><p class=MsoNormal style='margin-left:10.5pt;mso-para-margin-left:1.0gd'><spanclass=inlinemediaobject><b><span lang=EN-US style='font-family:Tahoma'><o:p>&nbsp;</o:p></span></b></span></p><p class=MsoNormal style='margin-left:10.5pt;mso-para-margin-left:1.0gd'><spanclass=inlinemediaobject><b><span lang=EN-US style='font-family:Tahoma'>intmain()<o:p></o:p></span></b></span></p><p class=MsoNormal style='margin-left:10.5pt;mso-para-margin-left:1.0gd'><spanclass=inlinemediaobject><b><span lang=EN-US style='font-family:Tahoma'>{<o:p></o:p></span></b></span></p><p class=MsoNormal style='margin-left:10.5pt;mso-para-margin-left:1.0gd;text-indent:10.5pt'><span class=inlinemediaobject><b><span lang=EN-USstyle='font-family:Tahoma'>char mesg[]=&quot;</span></b></span><spanclass=inlinemediaobject><span lang=EN-US style='font-family:Tahoma'>Just astring<b>&quot;;<span style='mso-tab-count:2'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></b>/*</span></span><span class=inlinemediaobject><span style='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>将要被打印的字符串</span></span><span class=inlinemediaobject><span lang=EN-USstyle='font-family:Tahoma'> */<o:p></o:p></span></span></p><p class=MsoNormal style='margin-left:10.5pt;mso-para-margin-left:1.0gd'><spanclass=inlinemediaobject><b><span lang=EN-US style='font-family:Tahoma'><spanstyle='mso-tab-count:1'>&nbsp;&nbsp;&nbsp; </span>int row,col;<spanstyle='mso-tab-count:4'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><spanstyle='mso-tab-count:2'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></b></span><spanclass=inlinemediaobject><span lang=EN-US style='font-family:Tahoma'>/* </span></span><spanclass=inlinemediaobject><span style='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>存储行号和列号的变量,用于指定光标位置</span></span><spanclass=inlinemediaobject><span style='font-family:Tahoma'> <span lang=EN-US>*/<o:p></o:p></span></span></span></p><p class=MsoNormal style='margin-left:10.5pt;mso-para-margin-left:1.0gd'><spanclass=inlinemediaobject><b><span lang=EN-US style='font-family:Tahoma'><spanstyle='mso-spacerun:yes'>&nbsp;</span><span style='mso-tab-count:1'>&nbsp; </span>initscr();<spanstyle='mso-tab-count:4'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><spanstyle='mso-tab-count:2'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></b></span><spanclass=inlinemediaobject><span lang=EN-US style='font-family:Tahoma'>/* </span></span><spanclass=inlinemediaobject><span style='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>进入</span></span><spanclass=inlinemediaobject><span lang=EN-US style='font-family:Tahoma'>curses</span></span><spanclass=inlinemediaobject><span style='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>模式</span></span><spanclass=inlinemediaobject><span style='font-family:Tahoma'> <span lang=EN-US>*/<b><o:p></o:p></b></span></span></span></p><p class=MsoNormal style='margin-left:10.5pt;mso-para-margin-left:1.0gd'><spanclass=inlinemediaobject><b><span lang=EN-US style='font-family:Tahoma'><spanstyle='mso-spacerun:yes'>&nbsp;</span><span style='mso-tab-count:1'>&nbsp; </span>getmaxyx(stdscr,row,col);<spanstyle='mso-tab-count:1'>&nbsp;&nbsp; </span><span style='mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></b></span><spanclass=inlinemediaobject><span lang=EN-US style='font-family:Tahoma'>/* </span></span><spanclass=inlinemediaobject><span style='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>取得</span></span><spanclass=inlinemediaobject><span lang=EN-US style='font-family:Tahoma'>stdscr</span></span><spanclass=inlinemediaobject><span style='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>(标准输出设备)的行数和列数</span></span><spanclass=inlinemediaobject><span style='font-family:Tahoma'> <span lang=EN-US>*/<o:p></o:p></span></span></span></p><p class=MsoNormal style='margin-left:10.5pt;mso-para-margin-left:1.0gd'><spanclass=inlinemediaobject><b><span lang=EN-US style='font-family:Tahoma'><spanstyle='mso-spacerun:yes'>&nbsp;</span><span style='mso-tab-count:1'>&nbsp; </span>mvprintw(row/2,(col-strlen(mesg))/2,&quot;%s&quot;,mesg);<br></span></b></span><span class=inlinemediaobject><span lang=EN-USstyle='font-family:Tahoma'><span style='mso-spacerun:yes'>&nbsp;</span>/*</span></span><spanclass=inlinemediaobject><span style='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>在屏幕的正中打印字符串</span></span><spanclass=inlinemediaobject><span lang=EN-US style='font-family:Tahoma'>mesg*/<b><o:p></o:p></b></span></span></p><p class=MsoNormal style='margin-left:10.5pt;mso-para-margin-left:1.0gd'><spanclass=inlinemediaobject><b><span lang=EN-US style='font-family:Tahoma'><spanstyle='mso-spacerun:yes'>&nbsp;</span>mvprintw(row-2,0,&quot;</span></b></span><spanclass=inlinemediaobject><span lang=EN-US style='font-family:Tahoma'>This screenhas %d rows and %d columns\n<b>&quot;,row,col);<o:p></o:p></b></span></span></p><p class=MsoBodyTextIndent style='margin-left:10.5pt;mso-para-margin-left:1.0gd'><spanclass=inlinemediaobject><span lang=EN-US><spanstyle='mso-spacerun:yes'>&nbsp;</span>printw(&quot;</span></span><spanclass=inlinemediaobject><span lang=EN-US style='font-weight:normal'>Tryresizing your window(if possible) and then run this program again</span><spanlang=EN-US>&quot;);<o:p></o:p></span></span></p><p class=MsoNormal style='margin-left:10.5pt;mso-para-margin-left:1.0gd'><spanclass=inlinemediaobject><b><span lang=EN-US style='font-family:Tahoma'><spanstyle='mso-spacerun:yes'>&nbsp;</span>refresh();<o:p></o:p></span></b></span></p><p class=MsoNormal style='margin-left:10.5pt;mso-para-margin-left:1.0gd'><spanclass=inlinemediaobject><b><span lang=EN-US style='font-family:Tahoma'><spanstyle='mso-spacerun:yes'>&nbsp;</span>getch();<o:p></o:p></span></b></span></p><p class=MsoNormal style='margin-left:10.5pt;mso-para-margin-left:1.0gd'><spanclass=inlinemediaobject><b><span lang=EN-US style='font-family:Tahoma'><spanstyle='mso-spacerun:yes'>&nbsp;</span>endwin();<o:p></o:p></span></b></span></p><p class=MsoNormal style='margin-left:10.5pt;mso-para-margin-left:1.0gd'><spanclass=inlinemediaobject><b><span lang=EN-US style='font-family:Tahoma'><o:p>&nbsp;</o:p></span></b></span></p><p class=MsoNormal style='margin-left:10.5pt;mso-para-margin-left:1.0gd'><spanclass=inlinemediaobject><b><span lang=EN-US style='font-family:Tahoma'><spanstyle='mso-spacerun:yes'>&nbsp;</span>return 0;<o:p></o:p></span></b></span></p><p class=MsoNormal style='margin-left:10.5pt;mso-para-margin-left:1.0gd'><spanclass=inlinemediaobject><b><span lang=EN-US style='font-family:Tahoma'>}</span></b></span><spanlang=EN-US style='font-family:Tahoma'><o:p></o:p></span></p><p class=MsoNormal style='margin-left:10.5pt;mso-para-margin-left:1.0gd'><spanstyle='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>这个程序示范了</span><span lang=EN-US style='font-family:Tahoma'>printw()</span><span style='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>函数集的用法,你只需要修改其中的行列坐标和要打印的字符串,这个程序就可以做任何你想做的。</span><spanlang=EN-US style='font-family:Tahoma'><o:p></o:p></span></p><p class=MsoNormal style='margin-left:10.5pt;mso-para-margin-left:1.0gd'><spanlang=EN-US style='font-family:Tahoma'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal style='margin-left:10.5pt;mso-para-margin-left:1.0gd'><spanstyle='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>这个程序引入了一个新函数</span><span lang=EN-USstyle='font-family:Tahoma'>getmaxyx()</span><span style='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>。这是一个定义在</span><span lang=EN-US style='font-family:Tahoma'>ncurses.h</span><spanstyle='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>中的宏,它会给出窗口的行数和列数。所以,在窗口初始化更改窗口大小数据的时候它也会随着一起改变。</span><spanlang=EN-US style='font-family:Tahoma'>getmaxyx()</span><span style='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>不是一个函数,因此我们不能向它传递指针,只可以传递一对整型变量。</span><span lang=EN-USstyle='font-family:Tahoma'><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-family:Tahoma'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><b><span lang=EN-US style='font-size:12.0pt'>6</span></b><b><spanlang=EN-US style='font-size:12.0pt;font-family:Tahoma'>.4. addstr()</span></b><b><spanstyle='font-size:12.0pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>函数集(</span></b><b><span lang=EN-USstyle='font-size:12.0pt;font-family:Tahoma'>addstr() class of functions</span></b><b><spanstyle='font-size:12.0pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>)</span></b><b><span lang=EN-USstyle='font-size:12.0pt;font-family:Tahoma'><o:p></o:p></span></b></p><p class=MsoNormal><span lang=EN-US style='font-family:Tahoma'>addstr()</span><spanstyle='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>函数用于输出字符串到指定窗口。这些函数的使用和</span><span lang=EN-USstyle='font-family:Tahoma'>addch()</span><span style='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>函数的使用差不多,差别在于输出对象分别是单个字符和字符串。其它的函数分别是</span><span lang=EN-USstyle='font-family:Tahoma'>mvaddstr()</span><span style='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>、</span><span lang=EN-US style='font-family:Tahoma'>mvwaddstr()</span><spanstyle='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>和</span><span lang=EN-US style='font-family:Tahoma'>waddstr()</span><span style='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>,它们有着相同的</span><spanlang=EN-US style='font-family:Tahoma'>CURSES</span><span style='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>命名规则。(比如</span><span lang=EN-US style='font-family:Tahoma'>mvaddstr() </span><spanstyle='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>函数就是分别调用了</span><span lang=EN-US style='font-family:Tahoma'>move()</span><span style='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>和</span><spanlang=EN-US style='font-family:Tahoma'>addstr()</span><span style='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>函数)这个函数集中还有一个函数</span><span lang=EN-US style='font-family:Tahoma'>addnstr()</span><spanstyle='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>,这个函数需要一个整型参数。用来打印字符串中和这个整形参数数目相同的字符。如果这个参数是负数,</span><spanlang=EN-US style='font-family:Tahoma'>addnstr()</span><span style='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>将会打印整个字符串。</span><span lang=EN-US style='font-family:Tahoma'><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-family:Tahoma'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><st1:chsdate IsROCDate="False" IsLunarDate="False" Day="30"Month="12" Year="1899" w:st="on"><b><span lang=EN-US style='font-size:12.0pt; font-family:Tahoma'>6.5.</span></b><b><span style='font-size:12.0pt; font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma; mso-bidi-font-family:Tahoma'>一</span></b></st1:chsdate><b><spanstyle='font-size:12.0pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>些提醒(</span></b><b><span lang=EN-USstyle='font-size:12.0pt;font-family:Tahoma'>A word of caution</span></b><b><spanstyle='font-size:12.0pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>)</span></b><b><span lang=EN-USstyle='font-size:12.0pt;font-family:Tahoma'><o:p></o:p></span></b></p><p class=MsoNormal><span style='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>所有这些函数中使用坐标的时候是先写</span><spanlang=EN-US style='font-family:Tahoma'>y</span><span style='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>坐标,再写</span><span lang=EN-US style='font-family:Tahoma'>x</span><spanstyle='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>坐标。很多初学者因为数学上的使用习惯而使用了先</span><span lang=EN-USstyle='font-family:Tahoma'><span class=msoIns><ins cite="mailto:simon"datetime="2004-02-05T20:46">x</ins></span></span><span style='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>后</span><span lang=EN-US style='font-family:Tahoma'><span class=msoIns><inscite="mailto:simon" datetime="2004-02-05T20:46">y</ins></span></span><spanstyle='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>的方式。如果你进行了很多使用行列坐标的操作。想想将屏幕分割成不同的窗口。然后熟练的处理每一个单独的窗口。窗口会在窗口一章中详细介绍。</span><spanlang=EN-US style='font-family:Tahoma'><o:p></o:p></span></p></div></body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -