📄 8第八章:输出修饰(attributes).htm
字号:
</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> </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<ncurses.h><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'>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'> </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'> </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'> </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'> </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'> </span>{<spanstyle='mso-spacerun:yes'> </span>printf("</span></b><spanlang=EN-US style='font-family:Tahoma'>Usage: %s <a c file name>\n<b>",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'> </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'> </span>}<o:p></o:p></span></b></p><p class=MsoNormal><span lang=EN-US style='font-family:Tahoma'><spanstyle='mso-spacerun:yes'> </span><b>fp = fopen(argv[1], "r");<spanstyle='mso-tab-count:1'> </span></b><span style='mso-tab-count:2'> </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'> </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'> </span>{<spanstyle='mso-spacerun:yes'> </span>perror("</span></b><spanlang=EN-US style='font-family:Tahoma'>Cannot open input file<b>");<o:p></o:p></b></span></p><p class=MsoNormal><b><span lang=EN-US style='font-family:Tahoma'><spanstyle='mso-spacerun:yes'> </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'> </span>}<o:p></o:p></span></b></p><p class=MsoNormal><b><span lang=EN-US style='font-family:Tahoma'><spanstyle='mso-spacerun:yes'> </span>initscr();</span></b><span lang=EN-USstyle='font-family:Tahoma'><span style='mso-tab-count:7'> </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'> </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'> </span><spanstyle='mso-spacerun:yes'> </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'> </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 == '/' && 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'> </span><b><spanstyle='mso-spacerun:yes'> </span><span style='mso-tab-count:1'> </span>{<spanstyle='mso-spacerun:yes'> </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'> </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'> </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'> </span><span style='mso-tab-count:1'> </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'> </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'> </span><span style='mso-tab-count:1'> </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'> </span><span style='mso-tab-count:2'> </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'> </span><span style='mso-tab-count:1'> </span>printw("</span></b><spanlang=EN-US style='font-family:Tahoma'>%c%c<b>", '/', 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'> </span><span style='mso-tab-count:1'> </span><b>ch = 'a';<spanstyle='mso-tab-count:1'> </span></b><spanstyle='mso-tab-count:4'> </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'> </span><span style='mso-tab-count:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -