您的位置:

从多个方面详细阐述conio

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;
}