conio.h中的函数和用法

如题所述

conio.h不是C标准库中的头文件。
conio是Console Input/Output(控制台输入输出)的简写,其中定义了通过控制台进行数据输入和数据输出的函数,主要是一些用户通过按键盘产生的对应操作,比如getch()函数等等。
1. clrscr()清除字符窗口函数
功能:函数clrscr()清除整个当前字符窗口,并且把光标定位于左上角(1,1)处.
用法:此函数调用方式为 void clrscr(void);
说明:括号中void 表示无参数.
该函数相应的头文件为conio.h
返回值:无
例:使用这个函数的例子见4.clreol()函数的实例中.
2. window()字符窗口函数
功能: 函数window()用于在指定位置建立一个字符窗口.
用法: 此函数调用方式为 void window(int left,int top,int right,int bottom);
说明: 函数中参数left,top为窗口左上角坐标;right,bottom为其右下角坐标.
若有一个坐标是无效的,则window()函数不起作用.一旦该函数调用成功,那么所有定位坐标都是相对于窗口的,而不是相对于整个屏幕.但是建立窗口所用的坐标总是相对整个屏幕的绝对坐标,而不是相对当前窗口的相对坐标.这样用户就可以根据各种需要建立多个互不嵌套的窗口.
此函数的头文件为conio.h.
返回值:无
例: 调用这个函数的实现例见3.gotoxy()函数的例子中.
3. gotoxy()光标定位函数
功能: 函数gotoxy()将字屏幕上的光标移到当前窗口指定的位置上.
用法: 这个函数调用方式为void gotoxy(int x,int y);
说明: 括号里x,y是, 光标定位的坐标,如果其中一个坐标值无效(如坐标超界),那么光标不会移动.
此函数在字符状态(有时称为文本状态)下经常用到 ,其相应的头文件为conio.h
返回值:无
例: 下面程序建立两个窗口,然后在窗口里显示字符,字符的位置是调用该函数确定的.
#include"conio.h>
void border(int startx,int starty,int endx,int endy)
{
register int i;
gotoxy(1,1);
for(i=0;i<=endx-startx;i++)
putch('-');
gotoxy(1,endy-starty);
for(i=0;i<=endx-startx;i++)
putch('-');
for(i=2;i
void main()
{
register int i;
gotoxy(6,8);
printf("This is a test of the clreol() function.");
getch();
gotoxy(6,8);
clreol();
for(i=0;i<20;i++)
printf("Hello\n");
getch();
clrscr();
}
5. insline() 插入空行函数
功能: 函数insline()插入一空行到当前光标所在行上,同时光标以下的所有行都向下顺移一行.
用法: 此函数的调用方式为void insline(void);
说明: 该函数只用于文本方式,并且在当了符窗口才有效.
这个函数的对应头文件是 conio.h
返回值:无
例: 程序给出了insline()函数的用法.
#include "conio.h"
void main()
{
registser int i;
clrscr();
for(i=1;i<24;i++)
{
gotoxy(1,i);
printf("This is line %d\n",i);
}
getch();
gotoxy(1,10);
insline();
getch();
}
6. delline() 删除一行函数
功能: 函数delline()删除当前窗口内光标所在行,同时把该行下面 所有行都上移一行.
用法: 此函数调用方式为 void delline(void);
说明: 注意,如果当前窗口小于整个屏幕,那么该函数只影响到窗口内的字符.
这个函数相应的头部文件是conio.h
返回值: 无
例:先在屏幕上显示16行文字,然后删除第4行
#include "conio.h"
void main()
{
register int i;
clrscr();
for(i=0;i<16;i++) printf("line %d\n",i);
getch();
gotoxy(1,4);
delline();
getch();
}
7.gettext() 拷进文字函数
功能: 函数gettext()用于文本状态下将屏幕上矩形域内的文字拷进内存.
用法: 该函数调用方式为 int gettext(int left,int top,int right,int bottom,void *buffer);
说明: 函数中参数left,top为矩形区域的左上角坐标,right,bottom为其右下角坐标,这些坐标是屏幕的绝对坐标,不是窗口的相对坐标.buffer指针必须指向一个足够保存该矩形域内文字的内存.所用内存大小按下式计算:
点头用字节数=矩形哉内的行数×矩形域的列数×2
这里将行数乘以列数再乘以2的原因是保存屏幕上每个字符要用两个字节存储单元,一个字节存储单元存放字符本身,而另一个存放其属性.
此函数相应的头文件是 conio.h
返回值: 若函数调用成功则返回1,否则返顺0.
例: 把屏幕左上角点(1,1)和右下角点(10,10)的区域拷贝到buf指向的内存中去.
buf=(char *)malloc(10*10*2);
if(!buf)gettext(1,1,10,10,buf);
8. puttext() 拷出文字函数
功能: 函数puttext()把先前由gettext()保存到buffer指向的内存中的文字拷出到屏幕上一个矩形区域中.
用法: 此函数调用方式为 int puttext(int left,int top,int right,int bottom,void *buffer);
说明: 函数里left,top为给出的屏幕上矩形区域的左上角点,right,bottom为其右下角点,其坐标是用屏幕的绝对坐标,而不是用窗口的相对坐标.
该函数相应的头文件为conio.h
返回值: 函数调用成功返回值为1,否则返回0.
例: 屏幕上某个区域内容拷进buf指向的内存中,然后又将这些文字拷出到屏幕上新位置.
buf=(char *)malloc(10*10*2);
gettext(1,1,10,10,buf);
puttext(16,16,30,30,buf);
9. movetext() 移动文字函数
功能: 函数movetext()将屏幕上一个矩形区域的文字移到另一个区域上.
用法: 该函数调用方式为 int movetext(int left,int top,int right,int bottom,int newleft,int newtop);
说明: 上面left,top为矩形区域上角坐标,right,bottom为其右下角坐标,newleft,newright为移动到区域左上角坐标.这些坐标是屏幕的绝对坐标,不是窗口的相对坐标.
若要把屏幕上一段文字移到屏幕的另一位置,那么使用movetext()函数比用gettext()然后再用puttext()效率更高.
此函数相应的头文件是conio.h
返回值: 如果有一个以上坐标无效,那么函数返回值为0,否则返回1.
列: 把屏幕左上角点(8,8),右下角点(20,20)的矩形区域文字移动到左上角点(10,10)的位置上:
movetext(8,8,20,20,10,10);
10. textmode() 文本模式函数
功能: 函数textmode()针屏幕设置为文本模式(或者说字符状态).
用法: 函数调用方式为 void textmode(int mode);
说明: 参数mode必须为表1-2中所示的模式之一⑴以用模式名(符号值),也可以用其等价的整数值.
表1-2 文本模式
----------------------------------------------------------------
模式名(符号值) 等价整数值 说 明
BW40 0 40列黑白
C 40 1 40列彩色
BW80 2 80列黑白
C 80 3 80列彩色
MONO 7 80列单色
LASTMODE -1 上次模式
----------------------------------------------------------------
调用该函数后,屏幕复位,并且所有字符的属性恢复其缺省值.
此函数对应的头文件是conio.h
返回值: 无
例: 把屏幕设置为80列彩色模式
textmode(C80);
11. highvideo()高亮度函数
功能: 函数highvideo()设置屏幕为高亮度显示.
用法: 此函数调用方式为void highvideo(void);
说明: 调用该函数后,写到屏幕上的字符是高亮度的.此函数只适用于文本模式状态(或说字符屏幕状态).
这个函数对应的头文件为 conio.h
返回值: 无
例: 设置屏幕显示为高亮度的.
highvideo();
12. lowvideo() 低亮度函数
功能: 函数lowvideo()设置屏幕为低亮度显示.
用法: 该函数调用方式为void lowvideo(void);
说明: 调用该函数后,此时写到屏幕上的字符是低亮度的.这个函数只适用于文本模式状态(或说字符屏幕状态).
此函数相应的头文件是 conio.h
返回值: 无
例: 设置屏幕显示为低亮度的
lowvideo();
13. normvideo(void);
功能: 函数normvideo()设置屏幕为正常亮度显示.
用法: 这个函数调用方式为void normvideo(void);
说明: 调用该函数后,此时写到屏幕上的字符是正常亮度的,该函数只适用于文本模式状态(或说字符状屏幕状态).
此函数相应的头文件为conio.h
返回值: 无
例: 设置屏幕显示为正常亮度.
normvideo();
14. textcolor() 文本颜色函数
功能: 函数textcolor()设置字符屏幕下文本颜色(或字符颜色),它也可以用于使字符闪烁.
用法: 这个函数调用方式为void textcolor(int color);
说明: 函数中参数color的有效值可取表1-3中的颜色名(即宏名)或等价值.
表1-3 颜色名与等价值
---------------------------------------------------
名 等价值 含 义
BLACK 0 黑
BLUE 1 蓝
GREEN 2 绿
CYAN 3 青
RED 4 红
MAGENTA 5 洋红
BROWN 6 棕
LIGHTGRAY 7 淡灰
DRAKGRAY 8 深灰
LIGHTBLUE 9 淡蓝
LIGHTGREEN 10 淡绿
LIGHTCYAN 11 淡青
LIGHTRED 12 淡红
LIGHTMAGENTA 13 淡洋红
YELLOW 14 黄
WHITE 15 白
BLINK 128 闪烁
------------------------------------------------------------
textcolor()函数执行后,只影响其后输出探险符颜色,而不改变已经在当前屏幕上的其它字符颜色.显然,如果需要输出的字符闪烁,只要将函数中参数color取为BLINK即可,如果要使字符带颜色闪烁,就必须将所选的颜色值与128作"或"运算.
此函数相应的头文件是 conio.h
返回值: 无
例: 下面程序段中第一条语句使输出的字符闪烁,第三条语句使字符输出为经色同时闪烁:
textcolor(BLINK);
printf("hello");
textcolor(RED|BLINK);
15. textattr() 文本属性函数
功能: 函数textattr()用于设置文本属性,即字符背景颜色,字符本身颜色和字符闪烁与否.
用法: 函数调用方式为void textattr(int attribute);
说明: 设置字符背景颜色属性字节的最简单方法是,用所选的背景颜色值乘以16再与字符颜色值作按位或(OR)运算.例如需要红色背景,绿色字符,就设置成RED*16|GREEN,若还要字符闪烁,就把背景颜色值,字符颜色值与闪烁值一起
按位作或运算.如蓝背景,黄字符且闪烁,就设置成为:
YELLO|128|BLUE*16
第0位用于设置字符颜色.
此函数相应的头文件为conio.h
返回值: 无
例: 设置背景为蓝色,字符为红色并且字符闪烁:
textattr(RED|128|BLUE*16);
16.textbackground() 文本背景函数
功能: 函数textbackground()设置字符屏幕下文本背景颜色(或字符背景颜色).
用法: 此函数调用方式为void textbackground(int bcolor);
说明: 参数bcolor 的有效值取表1-4背景颜色(即宏名)或等价值.
表1-4 背景颜色与等价值
-------------------------------------------------
背景颜色 等价值 含 义
-------------------------------------------------
BLACK 0 黑
BLUE 1 蓝
GREEN 2 绿
CYAN 3 青
RED 4 红
MAGENTA 5 洋红
BROWN 6 棕
-------------------------------------------------
调用该函数只影响后续写的字符背景颜色,而不改变当前显示在屏幕上的字符背景颜色.
这个函数对应的头文件是conio.h
返回值: 无
例: 设置文本背景颜色为蓝色:
textbackground(BLUE));
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-24
conio是Console Input/Output(控制台输入输出)的简写,其中定义了通过控制台进行数据输入和数据输出的函数,主要是一些用户通过按键盘产生的对应操作,比如getch()函数等等。
包含的函数
cgets(char *);
cprintf(const char *, ...);
cputs(const char *);
cscanf(const char *, ...);
inp(unsigned short);
inpw(unsigned short);
getch(void);
getche(void);
kbhit(void);
outp(unsigned short, int);
outpw(unsigned short, unsigned short);
putch(int);
ungetch(int);
void _Cdecl clreol (void);
void _Cdecl clrscr (void);
void _Cdecl delline (void);
int _Cdecl gettext (int left, int top, int right, int bottom,
void *destin);
void _Cdecl gettextinfo (struct text_info *r);
void _Cdecl gotoxy (int x, int y);
void _Cdecl highvideo (void);
void _Cdecl insline (void);
void _Cdecl lowvideo (void);
int _Cdecl movetext (int left, int top, int right, int bottom,
int destleft, int desttop);
void _Cdecl normvideo (void);
int _Cdecl puttext (int left, int top, int right, int bottom,
void *source);
void _Cdecl textattr (int newattr);
void _Cdecl textbackground (int newcolor);
void _Cdecl textcolor (int newcolor);
void _Cdecl textmode (int newmode);
int _Cdecl wherex (void);
int _Cdecl wherey (void);
void _Cdecl window (int left, int top, int right, int bottom);
har *_Cdecl cgets (char *str);
int _Cdecl cprintf (const char *format, ...);
int _Cdecl cputs (const char *str);
int _Cdecl cscanf (const char *format, ...);
int _Cdecl getch (void);
int _Cdecl getche (void);
char *_Cdecl getpass (const char *prompt);
int _Cdecl kbhit (void);
int _Cdecl putch (int c);
int _Cdecl ungetch (int ch);本回答被网友采纳
第2个回答  2019-10-22
conio.h不是C标准库中的头文件。
conio是Console
Input/Output(控制台输入输出)的简写,其中定义了通过控制台进行数据输入和数据输出的函数,主要是一些用户通过按键盘产生的对应操作,比如getch()函数等等。
1.
clrscr()清除字符窗口函数
功能:函数clrscr()清除整个当前字符窗口,并且把光标定位于左上角(1,1)处.
用法:此函数调用方式为
void
clrscr(void);
说明:括号中void
表示无参数.
该函数相应的头文件为conio.h
返回值:无
例:使用这个函数的例子见4.clreol()函数的实例中.
2.
window()字符窗口函数
功能:
函数window()用于在指定位置建立一个字符窗口.
用法:
此函数调用方式为
void
window(int
left,int
top,int
right,int
bottom);
说明:
函数中参数left,top为窗口左上角坐标;right,bottom为其右下角坐标.
若有一个坐标是无效的,则window()函数不起作用.一旦该函数调用成功,那么所有定位坐标都是相对于窗口的,而不是相对于整个屏幕.但是建立窗口所用的坐标总是相对整个屏幕的绝对坐标,而不是相对当前窗口的相对坐标.这样用户就可以根据各种需要建立多个互不嵌套的窗口.
此函数的头文件为conio.h.
返回值:无
例:
调用这个函数的实现例见3.gotoxy()函数的例子中.
3.
gotoxy()光标定位函数
功能:
函数gotoxy()将字屏幕上的光标移到当前窗口指定的位置上.
用法:
这个函数调用方式为void
gotoxy(int
x,int
y);
说明:
括号里x,y是,
光标定位的坐标,如果其中一个坐标值无效(如坐标超界),那么光标不会移动.
此函数在字符状态(有时称为文本状态)下经常用到
,其相应的头文件为conio.h
返回值:无
例:
下面程序建立两个窗口,然后在窗口里显示字符,字符的位置是调用该函数确定的.
#include"conio.h>
void
border(int
startx,int
starty,int
endx,int
endy)
{
register
int
i;
gotoxy(1,1);
for(i=0;i<=endx-startx;i++)
putch('-');
gotoxy(1,endy-starty);
for(i=0;i<=endx-startx;i++)
putch('-');
for(i=2;i
void
main()
{
register
int
i;
gotoxy(6,8);
printf("This
is
a
test
of
the
clreol()
function.");
getch();
gotoxy(6,8);
clreol();
for(i=0;i<20;i++)
printf("Hello\n");
getch();
clrscr();
}
5.
insline()
插入空行函数
功能:
函数insline()插入一空行到当前光标所在行上,同时光标以下的所有行都向下顺移一行.
用法:
此函数的调用方式为void
insline(void);
说明:
该函数只用于文本方式,并且在当了符窗口才有效.
这个函数的对应头文件是
conio.h
返回值:无
例:
程序给出了insline()函数的用法.
#include
"conio.h"
void
main()
{
registser
int
i;
clrscr();
for(i=1;i<24;i++)
{
gotoxy(1,i);
printf("This
is
line
%d\n",i);
}
getch();
gotoxy(1,10);
insline();
getch();
}
6.
delline()
删除一行函数
功能:
函数delline()删除当前窗口内光标所在行,同时把该行下面
所有行都上移一行.
用法:
此函数调用方式为
void
delline(void);
说明:
注意,如果当前窗口小于整个屏幕,那么该函数只影响到窗口内的字符.
这个函数相应的头部文件是conio.h
返回值:

例:先在屏幕上显示16行文字,然后删除第4行
#include
"conio.h"
void
main()
{
register
int
i;
clrscr();
for(i=0;i<16;i++)
printf("line
%d\n",i);
getch();
gotoxy(1,4);
delline();
getch();
}
7.gettext()
拷进文字函数
功能:
函数gettext()用于文本状态下将屏幕上矩形域内的文字拷进内存.
用法:
该函数调用方式为
int
gettext(int
left,int
top,int
right,int
bottom,void
*buffer);
说明:
函数中参数left,top为矩形区域的左上角坐标,right,bottom为其右下角坐标,这些坐标是屏幕的绝对坐标,不是窗口的相对坐标.buffer指针必须指向一个足够保存该矩形域内文字的内存.所用内存大小按下式计算:
点头用字节数=矩形哉内的行数×矩形域的列数×2
这里将行数乘以列数再乘以2的原因是保存屏幕上每个字符要用两个字节存储单元,一个字节存储单元存放字符本身,而另一个存放其属性.
此函数相应的头文件是
conio.h
返回值:
若函数调用成功则返回1,否则返顺0.
例:
把屏幕左上角点(1,1)和右下角点(10,10)的区域拷贝到buf指向的内存中去.
buf=(char
*)malloc(10*10*2);
if(!buf)gettext(1,1,10,10,buf);
8.
puttext()
拷出文字函数
功能:
函数puttext()把先前由gettext()保存到buffer指向的内存中的文字拷出到屏幕上一个矩形区域中.
用法:
此函数调用方式为
int
puttext(int
left,int
top,int
right,int
bottom,void
*buffer);
说明:
函数里left,top为给出的屏幕上矩形区域的左上角点,right,bottom为其右下角点,其坐标是用屏幕的绝对坐标,而不是用窗口的相对坐标.
该函数相应的头文件为conio.h
返回值:
函数调用成功返回值为1,否则返回0.
例:
屏幕上某个区域内容拷进buf指向的内存中,然后又将这些文字拷出到屏幕上新位置.
buf=(char
*)malloc(10*10*2);
gettext(1,1,10,10,buf);
puttext(16,16,30,30,buf);
9.
movetext()
移动文字函数
功能:
函数movetext()将屏幕上一个矩形区域的文字移到另一个区域上.
用法:
该函数调用方式为
int
movetext(int
left,int
top,int
right,int
bottom,int
newleft,int
newtop);
说明:
上面left,top为矩形区域上角坐标,right,bottom为其右下角坐标,newleft,newright为移动到区域左上角坐标.这些坐标是屏幕的绝对坐标,不是窗口的相对坐标.
若要把屏幕上一段文字移到屏幕的另一位置,那么使用movetext()函数比用gettext()然后再用puttext()效率更高.
此函数相应的头文件是conio.h
返回值:
如果有一个以上坐标无效,那么函数返回值为0,否则返回1.
列:
把屏幕左上角点(8,8),右下角点(20,20)的矩形区域文字移动到左上角点(10,10)的位置上:
movetext(8,8,20,20,10,10);
10.
textmode()
文本模式函数
功能:
函数textmode()针屏幕设置为文本模式(或者说字符状态).
用法:
函数调用方式为
void
textmode(int
mode);
说明:
参数mode必须为表1-2中所示的模式之一⑴以用模式名(符号值),也可以用其等价的整数值.
表1-2
文本模式
----------------------------------------------------------------
模式名(符号值)
等价整数值


BW40
0
40列黑白
C
40
1
40列彩色
BW80
2
80列黑白
C
80
3
80列彩色
MONO
7
80列单色
LASTMODE
-1
上次模式
----------------------------------------------------------------
调用该函数后,屏幕复位,并且所有字符的属性恢复其缺省值.
此函数对应的头文件是conio.h
返回值:

例:
把屏幕设置为80列彩色模式
textmode(C80);
11.
highvideo()高亮度函数
功能:
函数highvideo()设置屏幕为高亮度显示.
用法:
此函数调用方式为void
highvideo(void);
说明:
调用该函数后,写到屏幕上的字符是高亮度的.此函数只适用于文本模式状态(或说字符屏幕状态).
这个函数对应的头文件为
conio.h
返回值:

例:
设置屏幕显示为高亮度的.
highvideo();
12.
lowvideo()
低亮度函数
功能:
函数lowvideo()设置屏幕为低亮度显示.
用法:
该函数调用方式为void
lowvideo(void);
说明:
调用该函数后,此时写到屏幕上的字符是低亮度的.这个函数只适用于文本模式状态(或说字符屏幕状态).
此函数相应的头文件是
conio.h
返回值:

例:
设置屏幕显示为低亮度的
lowvideo();
13.
normvideo(void);
功能:
函数normvideo()设置屏幕为正常亮度显示.
用法:
这个函数调用方式为void
normvideo(void);
说明:
调用该函数后,此时写到屏幕上的字符是正常亮度的,该函数只适用于文本模式状态(或说字符状屏幕状态).
此函数相应的头文件为conio.h
返回值:

例:
设置屏幕显示为正常亮度.
normvideo();
14.
textcolor()
文本颜色函数
功能:
函数textcolor()设置字符屏幕下文本颜色(或字符颜色),它也可以用于使字符闪烁.
用法:
这个函数调用方式为void
textcolor(int
color);
说明:
函数中参数color的有效值可取表1-3中的颜色名(即宏名)或等价值.
表1-3
颜色名与等价值
---------------------------------------------------

等价值


BLACK
0

BLUE
1

GREEN
2
绿
CYAN
3

RED
4

MAGENTA
5
洋红
BROWN
6

LIGHTGRAY
7
淡灰
DRAKGRAY
8
深灰
LIGHTBLUE
9
淡蓝
LIGHTGREEN
10
淡绿
LIGHTCYAN
11
淡青
LIGHTRED
12
淡红
LIGHTMAGENTA
13
淡洋红
YELLOW
14

WHITE
15

BLINK
128
闪烁
------------------------------------------------------------
textcolor()函数执行后,只影响其后输出探险符颜色,而不改变已经在当前屏幕上的其它字符颜色.显然,如果需要输出的字符闪烁,只要将函数中参数color取为BLINK即可,如果要使字符带颜色闪烁,就必须将所选的颜色值与128作"或"运算.
此函数相应的头文件是
conio.h
返回值:

例:
下面程序段中第一条语句使输出的字符闪烁,第三条语句使字符输出为经色同时闪烁:
textcolor(BLINK);
printf("hello");
textcolor(RED|BLINK);
15.
textattr()
文本属性函数
功能:
函数textattr()用于设置文本属性,即字符背景颜色,字符本身颜色和字符闪烁与否.
用法:
函数调用方式为void
textattr(int
attribute);
说明:
设置字符背景颜色属性字节的最简单方法是,用所选的背景颜色值乘以16再与字符颜色值作按位或(OR)运算.例如需要红色背景,绿色字符,就设置成RED*16|GREEN,若还要字符闪烁,就把背景颜色值,字符颜色值与闪烁值一起
按位作或运算.如蓝背景,黄字符且闪烁,就设置成为:
YELLO|128|BLUE*16
第0位用于设置字符颜色.
此函数相应的头文件为conio.h
返回值:

例:
设置背景为蓝色,字符为红色并且字符闪烁:
textattr(RED|128|BLUE*16);
16.textbackground()
文本背景函数
功能:
函数textbackground()设置字符屏幕下文本背景颜色(或字符背景颜色).
用法:
此函数调用方式为void
textbackground(int
bcolor);
说明:
参数bcolor
的有效值取表1-4背景颜色(即宏名)或等价值.
表1-4
背景颜色与等价值
-------------------------------------------------
背景颜色
等价值


-------------------------------------------------
BLACK
0

BLUE
1

GREEN
2
绿
CYAN
3

RED
4

MAGENTA
5
洋红
BROWN
6

-------------------------------------------------
调用该函数只影响后续写的字符背景颜色,而不改变当前显示在屏幕上的字符背景颜色.
这个函数对应的头文件是conio.h
返回值:

例:
设置文本背景颜色为蓝色:
textbackground(BLUE));
相似回答