conio是C語言中的一個頭文件,可以在控制台模式下提供一系列UI界面處理函數,包括清除、定位、輸入輸出、顏色控制等。接下來將從多個方面進行詳細闡述。
一、清屏、定位、顏色控制
conio提供了多種清屏、定位、顏色控制函數,如下:
#include <conio.h> void clrscr(void); //清屏 void clreol(void); //清除從光標到行末的內容 void clrtoeol(void); //清除從光標到屏幕底部的內容 void gotoxy(int x, int y); //將光標定位到(x,y)處 void textattr(int attr); //設置文本顏色
其中文本顏色可以通過以下宏定義進行設置:
#define _NORM 0x07 //白底黑字 #define _BLINK 0x80 //閃爍 #define _RED 0x04 //紅色 #define _GREEN 0x02 //綠色 #define _CYAN 0x03 //青色 #define _YELLOW 0x06 //黃色 #define _MAGENTA 0x05 //洋紅 #define _GRAY 0x08 //灰色
可以使用以下代碼進行簡單示例:
#include <stdio.h> #include <conio.h> int main() { clrscr(); //清屏 textattr(_RED); //設置文本顏色為紅色 gotoxy(10,10); //光標定位到(10,10)處 printf("Hello, world!"); getch(); //等待輸入 return 0; }
二、字符輸入輸出
conio提供了多種字符輸入輸出函數,如下:
int getch(void); //從鍵盤讀入一個字符,不顯示在屏幕上 int getche(void); //從鍵盤讀入一個字符,顯示在屏幕上 int putch(int c); //向屏幕輸出一個字符 int ungetch(int ch); //將一個字符退回到輸入緩衝區中
可以使用以下代碼進行簡單示例:
#include <stdio.h> #include <conio.h> int main() { char ch; printf("Please enter a character:"); ch = getch(); //從鍵盤讀入一個字符,不顯示在屏幕上 printf("\nYou entered: "); putch(ch); //向屏幕輸出一個字符 getch(); return 0; }
三、字符串輸入輸出
conio提供了多種字符串輸入輸出函數,如下:
char* gets(char* str); //從鍵盤讀入一個字符串,存儲到str中 int puts(const char* str); //向屏幕輸出一個字符串
其中gets函數的使用需要注意,應該指定str字符數組的長度以避免越界。可以使用以下代碼進行簡單示例:
#include <stdio.h> #include <conio.h> int main() { char str[20]; printf("Please enter a string:"); gets(str); //從鍵盤讀入一個字符串,存儲到str中 printf("\nThe string you entered is: "); puts(str); //向屏幕輸出一個字符串 getch(); return 0; }
四、圖形界面處理
conio提供了一些圖形界面處理函數,如下:
void putpixel(int x, int y, int color); //設置像素點的顏色 void rectangle(int left, int top, int right, int bottom); //繪製矩形 void line(int x1, int y1, int x2, int y2); //繪製直線 void circle(int x, int y, int radius); //繪製圓形
可以使用以下代碼進行簡單示例:
#include <stdio.h> #include <conio.h> void draw_border() { rectangle(0,0,79,24); //繪製邊框 gotoxy(2,1); //定位到標題位置 textattr(_RED|_BLINK); //設置標題的顏色 puts(" Conio Graphics Demo "); //輸出標題 } int main() { int i; clrscr(); //清屏 draw_border(); //繪製邊框和標題 textattr(_YELLOW); //設置文本顏色為黃色 for(i=5;i<20;i++) putpixel(i,10,_YELLOW); //繪製像素點 line(10,8,30,8); //繪製直線 circle(40,16,6); //繪製圓形 getch(); //等待輸入 return 0; }
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/282837.html