亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

conio.h

系統 1548 0
C語言中,圖形函數大致可分為兩類:字符模式函數和圖形模式函數。本節我們練習使用字符模式函數。??
????????? 使用字符模式函數應該在程序中聯入conio.h頭部文件。??
????????? 下面是一些函數的作用??
? 1)???? void???? clreol();?????????? 從光標處刪除到本行末??
? 2)???? void???? delline();???????? 清除本行內容,下面內容上提一行??
????????????????????? delline();函數實際上還起到了向上卷屏的作用。??
? 3)???? void???? insline();???????? 在光標所在行插入一空行,原來該行及以??
????????????????????????????????????????????????????????? 下各行皆向下移一行??
? 4)?????? int???? wherex();?????????? 返回當前光標的x(行)坐標??
? 5)?????? int???? wherey();?????????? 返回當前光標的y(列)坐標??
? 6)???? void???? highvideo();???? 字符輸出用高亮度字符??
? 7)???? void???? lowvideo();?????? 字符輸出用低亮度字符??
? ???? void???? normvideo();???? 字符輸出用普通亮度字符??
????????? 在以上的各函數中皆不帶參數,當然也可以寫成括號中有void的形式:??
????????? void?? wherex(void);???????? 還可以寫成???????? wherex();??
????????? 清屏、清行、向后刪行、插行的操作真有些CCED、WPS等編輯軟件的風格,就是在你平時的屏幕設計中也用少不了。返回坐標的函數則給你的設計提供每一個環節的光標坐標值。有利于你前后響應。字??
? 符亮度的改變則會讓你的字符顯示出層次感,怎么樣,趕快試試吧:??
? /*?? No32.c*/??
? #?? include?? "stdio.h"??
? #?? include?? "conio.h"??
? main()??
? {?? clrscr();??
????? gotoxy(10,1);??
????? cprintf("甜密密,");??
????? highvideo();?????????????????????????????????????????????????????? /*高亮度顯示*/??
????? cprintf("\r\n?????????????????? 你笑得甜密密,");??
????? lowvideo();???????????????????????????????????????????????????????? /*低亮度顯示*/??
????? cprintf("\r\n?????????????????? 好象花兒開在春風里,");??
????? normvideo();?????????????????????????????????????????????????????? /*普通亮度顯示*/??
????? gotoxy(10,4);?? cprintf("開在春風里");??
????? cprintf("\r\n?????????????????? 在哪里,在哪里見過你?");??
????? printf("\r\n?????????????????? 你的笑容這樣熟悉。");??
????? gotoxy(10,20);printf("任意鍵刪去光標后的內容");??
????? gotoxy(18,3);?????????? getch();??
????? gotoxy(18,3);??
????? clreol();???????????????????????????????????????????????????????????? /*刪去光標后字符*/??
????? gotoxy(10,20);printf("任意鍵刪去本行的內容???? ");??
????? gotoxy(18,3);?????????? getch();??
????? delline();?????????????????????????????????????????????????????????? /*刪去本行*/??
????? gotoxy(10,20);printf("任意鍵在本行插一空行???? ");??
????? gotoxy(18,3);?????????? getch();??
????? insline();?????????????????????????????????????????????????????????? /*插入一空行*/??
????? gotoxy(1,7);??
? }??
????????? 應該注意的是,要發揮本節所講的函數的作用,在顯示時不能使printf函數,應使用cprintf函數。它的使用方法和printf的完全一樣,只不過后面的cprintf能發揮亮度設置和顏色設置的作用。前者??
? printf函數只有一種顏色和單一的亮度。??
????????? 在cprintf函數中,“\n”的作用不再是既回到行首又換行,它只起一個換行的作用,所以要把內容在行首顯示必須再加一個“\r”??
????????? 上面的程序不是一真正對大家有用的程序,只是用來說明一個剛剛學到的幾個函數的作用。在conio.h中還有一些字符型函數,它們都是帶參數的。??
? 9)???? void?? textcolor(顏色);???????????????? 定義顯示字符顏色??
? 10)?? void?? textbackground(顏色);?????? 定義背景顏色??
????????? 下面是顏色數字和顏色對照表??
????????? BLACK???????????? 0?????? 黑?????????????????????????? DARKGRAY?????????? 8???????? 深灰??
????????? BLUE?????????????? 1?????? 蘭?????????????????????????? LIGHTBLUE???????? 9???????? 淡蘭??
????????? GREEN???????????? 2?????? 綠?????????????????????????? LIGHTGREEN?????? 10?????? 淡綠??
????????? CYAN?????????????? 3?????? 青?????????????????????????? LIGHTCYAN???????? 11?????? 淡青??
????????? RED???????????????? 4?????? 紅?????????????????????????? LIGHTRED?????????? 12?????? 淡紅??
????????? MAGENTA???????? 5???? 洋紅???????????????????????? LIGHTMAGENTA?? 13?????? 淡洋紅??
????????? BROWN???????????? 6?????? 棕?????????????????????????? YELLOW?????????????? 14?????? 黃??
????????? LIGHTGRAY???? 7???? 淡灰???????????????????????? WHILT???????????????? 15?????? 白??
????????? 背景顏色值只能是0-7共8個數字或其對應的英文大寫單詞。而前景(即字符)的顏色可以是0-15共16種顏色或其對應的英文大寫單詞。當你定義的前景和背景相同時,屏幕上看不到輸出的內容。??
????????? textcolor(4);???? 和???? textcolor(RED);???? 效果是相同的。??
????????? 設置屏幕顏色還可以使用??
? 11)?? void?? textattr(前景顏色+(背景顏色));??
????????? 但這里的背景顏色要有“<<4”。如白底紅字,就是:??
????????????? textattr(RED+(WHITE<<4));??
? 12)?? int?? gettext(左上角x,左上角y,右下角x,右下角y,內存指針);??
????????????????????????????? 把定義的長方形區域內的內容存在內存中??
? 13)?? int?? puttext(左上角x,左上角y,右下角x,右下角y,內存指針);??
????????????????????????????? 把內存中存好的內容顯示在新定義的矩形塊內??
????????? 這里的內存指針也可用字符形數組來代替。需要注意的是內存大小應該是所存內容的“行數*列數*2”。比如把第3行第5列到第6行第75列的數據存到內存中,可以用下面的片段:??
????????? char?? buffer[4*70*2];??
????????? gettext(5,3,75,6,buffer);??
????????? 然后你就可以用puttext函數來顯示它了。??
? 14)?? void?? movetext(左上角x,左上角y,右下角x,右下角y,??
??????????????????????????????????????????????????????????????????????????????? 新左上角x,新左上角y);??
??????????????????????????????? 把矩形塊移到新左上角(x,y)決定的地方??
? 15)?? void?? window(左上角x,左上角y,右下角x,右下角y);??
????????????????????????????? 定義一個窗口,大小就是上面參數決定的長方形??
????????? 利用這一函數,你可以在屏幕上任何一個地方開辟一個窗口,并在上面顯示需要的內容。這絲毫不影響屏幕其它地方的內容。當你定義了窗口后,你只能操作該窗口,gotoxy(),wherex(),wherey(),??
? clrscr()等等函數所表示的都是你定義窗口中的情況。實際上這就為我們的操作帶來了方便,你想操作哪兒,就定義哪兒,想回到平時狀態的屏幕,就定義一個最大的窗口,window(1,1,80,25);就復原了。??
????????? No.33號例子是利用puttext和gettext函數以及顏色定義來模仿CCED和WPS的菜單顯示。但這個小程序沒有可移動的光條,也沒有菜單中內容的相應執行程序,只是演示一下屏幕的保存和釋放而已。??
? /*?? No33.c?? */??
? #include?? "conio.h"??
? #include?? "stdio.h"??
? main()??
? {???? int?? i=1,j,ch;??
??????? char?? buffer[6*50*2];?????????????? /*開辟內存空間的大小*/??
??????? clrscr();??
??????? textcolor(0);???????????????????????????? /*定義字符顏色*/??
??????? textbackground(7);?????????????????? /*定義背景顏色*/??
??????? gotoxy(1,1);??
??????? cprintf("???????? 功能1?????????????? 功能2???????????? 功能3???????? ");??
??????? textbackground(0);??
??????? textcolor(14);??
??????? gotoxy(1,2);??
??????? cprintf("What's?? your?? name????????????????? 你叫什么名字");??
??????? cprintf("\n\rMy?? name?? is?? Wang?? Dong.???????? 我叫王東.");??
??????? cprintf("\n\rHow?? old?? are?? are?? you??????????? 你多大了?? .?? ");??
??????? cprintf("\n\rI'm?? thirty-four.?????????????????? 我四十四了");??
??????? cprintf("\n\r\n\rThis?? is?? Lesson?? One.???????????? 這是第一課");??
??????? while(1)??
??????? {?? j=i;??
??????????? textcolor(0);??
??????????? textbackground(7);??
??????????? if(i==1)??
??????????? {?? gettext(1,2,13,5,buffer);??
??????????????? gotoxy(2,2);?????? cprintf("│第一課│");??
??????????????? gotoxy(2,3);?????? cprintf("│第二課│");??
??????????????? gotoxy(2,4);?????? cprintf("│第三課│");??
??????????????? gotoxy(2,5);?????? cprintf("└───┘");??
??????????? }??
??????????? if(i==2)??
??????????? {?? gettext(13,2,25,5,buffer);??
??????????????? gotoxy(14,2);?????? cprintf("│菜單一│");??
??????????????? gotoxy(14,3);?????? cprintf("│菜單二│");??
??????????????? gotoxy(14,4);?????? cprintf("│菜單三│");??
??????????????? gotoxy(14,5);?????? cprintf("└───┘");??
??????????? }??
??????????? if(i==3)??
??????????? {?? gettext(25,2,37,5,buffer);??
??????????????? gotoxy(26,2);?????? cprintf("│說明A?? │");??
??????????????? gotoxy(26,3);?????? cprintf("│說明B?? │");??
??????????????? gotoxy(26,4);?????? cprintf("│說明C?? │");??
??????????????? gotoxy(26,5);?????? cprintf("└───┘");??
??????????? }??
??????????? textcolor(14);??
??????????? gotoxy(10,20);printf("→向右移動???? ←向左移動???? Esc?? 退出");??
??????????? ch=getch();??
??????????? if((ch==75)&&(i==1))???????????????? /*菜單個數的判斷*/??
??????????? {???? i=3;?? ch=0;}??
??????????? if((ch==77)&&(i==3))???????????????? /*ASCII碼?? 77是右箭頭*/??
??????????? {???? i=1;?? ch=0;}??
??????????? if((ch==75)&&(i>1))?????????????????? /*ASCII碼?? 75是左箭頭*/??
??????????????? i--;??
??????????? if((ch==77)&&(i<3))??
??????????????? i++;??
??????????? if(ch==27)??
??????????????? break;??
??????????? puttext(j*12-11,2,j*12+1,5,buffer);??
????? }??
? }

conio.h


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 就草草在线观看视频 | 国产手机在线视频放线视频 | 久久国产三级 | 四虎影院网 | 久草视频免费在线观看 | 插插插色综合 | 在线欧美精品一区二区三区 | 久久大香伊蕉在人线国产昨爱 | 2019年国产不卡在线刷新 | 免费精品视频 | www.夜夜骑| 久久一卡二卡 | 欧美综合亚洲 | 香蕉人在线香蕉人在线 | 亚洲va国产va欧美va综合 | 在线观看日本免费不卡 | 伊人国产精品 | 天天做天天爱夜夜想毛片 | 精品中文字幕一区在线 | 在线观看偷拍视频一区 | 久久国产午夜精品理论片34页 | 日本欧美高清全视频 | 久久久综合香蕉尹人综合网 | 日本高清不卡一区久久精品 | 欧美成人a级在线视频 | 九九99| 日韩亚洲欧美性感视频影片免费看 | 中文一级黄色片 | 青青青青爽视频在线播放 | 国产亚洲精品在天天在线麻豆 | 青青青国产在线手机免费观看 | 亚洲精品一区二区中文 | 天天爱天天色天天干 | 国产精品伦一区二区三级视频 | 国产成人一区二区在线不卡 | 亚洲精品伊人 | 91久久夜色精品国产九色 | 亚洲视频一区二区在线观看 | 免费香蕉依人在线视频久 | 欧美操人视频 | 日本一级高清不卡视频在线 |