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

📄 8第八章:输出修饰(attributes).htm

📁 curses界面编程
💻 HTM
📖 第 1 页 / 共 5 页
字号:
</style><!--[if gte mso 10]><style> /* Style Definitions */ table.MsoNormalTable	{mso-style-name:普通表格;	mso-tstyle-rowband-size:0;	mso-tstyle-colband-size:0;	mso-style-noshow:yes;	mso-style-parent:"";	mso-padding-alt:0cm 5.4pt 0cm 5.4pt;	mso-para-margin:0cm;	mso-para-margin-bottom:.0001pt;	mso-pagination:widow-orphan;	font-size:10.0pt;	font-family:"Times New Roman";	mso-ansi-language:#0400;	mso-fareast-language:#0400;	mso-bidi-language:#0400;}</style><![endif]--></head><body lang=ZH-CN style='tab-interval:21.0pt;text-justify-trim:punctuation'><div class=Section1 style='layout-grid:15.6pt'><h3><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'>Attributes</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></h3><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'>Attributes</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'>C</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'>BOLD</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'><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 style='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-family:Tahoma'>5</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'><o:p></o:p></span></b></p><p class=MsoNormal><b><span lang=EN-US style='font-family:Tahoma'>#include&lt;ncurses.h&gt;<o:p></o:p></span></b></p><p class=MsoNormal><b><span lang=EN-US style='font-family:Tahoma'><o:p>&nbsp;</o:p></span></b></p><p class=MsoNormal><b><span lang=EN-US style='font-family:Tahoma'>int main(intargc, char *argv[])<o:p></o:p></span></b></p><p class=MsoNormal><b><span lang=EN-US style='font-family:Tahoma'>{ <o:p></o:p></span></b></p><p class=MsoNormal><b><span lang=EN-US style='font-family:Tahoma'><spanstyle='mso-spacerun:yes'>&nbsp; </span>int ch, prev;<o:p></o:p></span></b></p><p class=MsoNormal><b><span lang=EN-US style='font-family:Tahoma'><spanstyle='mso-spacerun:yes'>&nbsp; </span>FILE *fp;<o:p></o:p></span></b></p><p class=MsoNormal><b><span lang=EN-US style='font-family:Tahoma'><spanstyle='mso-spacerun:yes'>&nbsp; </span>int goto_prev = FALSE, y, x;<o:p></o:p></span></b></p><p class=MsoNormal><b><span lang=EN-US style='font-family:Tahoma'><spanstyle='mso-spacerun:yes'>&nbsp; </span>if(argc != 2)<o:p></o:p></span></b></p><p class=MsoNormal><b><span lang=EN-US style='font-family:Tahoma'><spanstyle='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp; </span>{<spanstyle='mso-spacerun:yes'>&nbsp;&nbsp; </span>printf(&quot;</span></b><spanlang=EN-US style='font-family:Tahoma'>Usage: %s &lt;a c file name&gt;\n<b>&quot;,argv[0]);<o:p></o:p></b></span></p><p class=MsoNormal><b><span lang=EN-US style='font-family:Tahoma'><spanstyle='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>exit(1);<o:p></o:p></span></b></p><p class=MsoNormal><b><span lang=EN-US style='font-family:Tahoma'><spanstyle='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp; </span>}<o:p></o:p></span></b></p><p class=MsoNormal><span lang=EN-US style='font-family:Tahoma'><spanstyle='mso-spacerun:yes'>&nbsp; </span><b>fp = fopen(argv[1], &quot;r&quot;);<spanstyle='mso-tab-count:1'>&nbsp;&nbsp; </span></b><span style='mso-tab-count:2'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </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-USstyle='font-family:Tahoma'> */<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-family:Tahoma'><spanstyle='mso-spacerun:yes'>&nbsp; </span><b>if(fp == NULL)<o:p></o:p></b></span></p><p class=MsoNormal><b><span lang=EN-US style='font-family:Tahoma'><spanstyle='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp; </span>{<spanstyle='mso-spacerun:yes'>&nbsp;&nbsp; </span>perror(&quot;</span></b><spanlang=EN-US style='font-family:Tahoma'>Cannot open input file<b>&quot;);<o:p></o:p></b></span></p><p class=MsoNormal><b><span lang=EN-US style='font-family:Tahoma'><spanstyle='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>exit(1);<o:p></o:p></span></b></p><p class=MsoNormal><b><span lang=EN-US style='font-family:Tahoma'><spanstyle='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp; </span>}<o:p></o:p></span></b></p><p class=MsoNormal><b><span lang=EN-US style='font-family:Tahoma'><spanstyle='mso-spacerun:yes'>&nbsp; </span>initscr();</span></b><span lang=EN-USstyle='font-family:Tahoma'><span style='mso-tab-count:7'>&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </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-USstyle='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><spanstyle='font-family:Tahoma'> <span lang=EN-US>*/<o:p></o:p></span></span></p><p class=MsoNormal><span lang=EN-US style='font-family:Tahoma'><spanstyle='mso-spacerun:yes'>&nbsp; </span><b>prev = EOF;<o:p></o:p></b></span></p><p class=MsoNormal><b><span lang=EN-US style='font-family:Tahoma'><spanstyle='mso-spacerun:yes'>&nbsp;</span><spanstyle='mso-spacerun:yes'>&nbsp;</span>while((ch = fgetc(fp)) != EOF)<o:p></o:p></span></b></p><p class=MsoNormal style='text-indent:10.55pt;mso-char-indent-count:1.0'><b><spanlang=EN-US style='font-family:Tahoma'>{<spanstyle='mso-spacerun:yes'>&nbsp;&nbsp; </span><o:p></o:p></span></b></p><p class=MsoNormal style='text-indent:21.0pt'><b><span lang=EN-USstyle='font-family:Tahoma'>if(prev == '/' &amp;&amp; ch == '*')</span></b><spanlang=EN-US style='font-family:Tahoma'><span style='mso-tab-count:1'> </span>/* </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'>/</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'>*</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'><spanstyle='mso-spacerun:yes'>&nbsp;</span><b><spanstyle='mso-spacerun:yes'>&nbsp;</span><span style='mso-tab-count:1'>&nbsp;&nbsp;&nbsp; </span>{<spanstyle='mso-spacerun:yes'>&nbsp;&nbsp; </span><o:p></o:p></b></span></p><p class=MsoNormal style='margin-left:21.0pt;text-indent:21.0pt'><b><spanlang=EN-US style='font-family:Tahoma'>attron(A_BOLD);</span></b><spanlang=EN-US style='font-family:Tahoma'><span style='mso-tab-count:2'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </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><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'>*</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'><spanstyle='mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span> */<o:p></o:p></span></p><p class=MsoNormal style='margin-left:21.0pt;text-indent:21.0pt'><b><spanlang=EN-US style='font-family:Tahoma'>goto_prev = TRUE;<o:p></o:p></span></b></p><p class=MsoNormal><b><span lang=EN-US style='font-family:Tahoma'><spanstyle='mso-spacerun:yes'>&nbsp; </span><span style='mso-tab-count:1'>&nbsp;&nbsp;&nbsp; </span>}</span></b><spanlang=EN-US style='font-family:Tahoma'><o:p></o:p></span></p><p class=MsoNormal style='text-indent:21.0pt'><b><span lang=EN-USstyle='font-family:Tahoma'>if(goto_prev == TRUE)</span></b><span lang=EN-USstyle='font-family:Tahoma'><span style='mso-tab-count:2'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </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-USstyle='font-family:Tahoma'>/</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'>*</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'><spanstyle='mso-spacerun:yes'>&nbsp; </span><span style='mso-tab-count:1'>&nbsp;&nbsp;&nbsp; </span><b>{<o:p></o:p></b></span></p><p class=MsoNormal style='margin-left:21.0pt;text-indent:21.0pt'><b><spanlang=EN-US style='font-family:Tahoma'>getyx(stdscr, y, x);<o:p></o:p></span></b></p><p class=MsoNormal><b><span lang=EN-US style='font-family:Tahoma'><spanstyle='mso-spacerun:yes'>&nbsp;&nbsp; </span><span style='mso-tab-count:2'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>move(y,x - 1);<o:p></o:p></span></b></p><p class=MsoNormal><b><span lang=EN-US style='font-family:Tahoma'><spanstyle='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp; </span><span style='mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>printw(&quot;</span></b><spanlang=EN-US style='font-family:Tahoma'>%c%c<b>&quot;, '/', ch);</b><spanstyle='mso-tab-count:1'> </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'> */<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-family:Tahoma'><spanstyle='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp; </span><span style='mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b>ch = 'a';<spanstyle='mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></b><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;&nbsp; </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-USstyle='font-family:Tahoma'>*/<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-family:Tahoma'><spanstyle='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp; </span><span style='mso-tab-count:

⌨️ 快捷键说明

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