当前位置:文档之家› C语言图形编程函数大全

C语言图形编程函数大全

C语言图形编程函数大全
C语言图形编程函数大全

C语言图形编程

一、字符屏幕

一、屏幕操作函数

1. clrscr()清除字符窗口函数

2. window()字符窗口函数

3. gotoxy()光标定位函数

4. clreol() 清除光标行尾字符函数

5. insline() 插入空行函数

6. delline() 删除一行函数

7. gettext() 拷进文字函数

8. puttext() 拷出文字函数

9. movetext() 移动文字函数

二、字符属性函数

10. textmode() 文本模式函数

11. highvideo()高亮度函数

12. lowvideo() 低亮度函数

13. normvideo(void);

14. textcolor() 文本颜色函数

15. textattr() 文本属性函数

16.textbackground() 文本背景函数

三、屏显状态函数

17. wherex() 光标处x坐标函数

18. wherey() 光标处y坐标函数

19. gettextinfo() 获取文本窗口信息函数

在Borland C++里面提供了字符屏幕和图形函数。字符屏幕的核心是窗口(Window),它是屏幕的活动部分,字符输出或显示在活动窗口中进行。窗口在缺省时,就是整个屏幕。窗口可以根据需要指定其大小。同样,对图形函数的操作,也提供了(Viewport)。也就是说图形函数的操作都是在视口上进行。图形视口与字符窗口具有相同的特性,用户可以在屏幕上定义大小不同的视口,若不定义视口大小,它就是整个屏幕。

窗口是在字符屏幕下的概念,只有字符才能在窗口中显示出来,这时用户可以访问的最小单位为一个字符。视口是在图形屏幕状态下的概念,文本与图形都可以在视口上显示,用户可访问的最小单位是一个像素(像素这一术语最初用来指显示器上最小的、单独的发光点单元。然而现在,其含义拓宽为指图形显示器上的最小可访问点)。

字符和图形状态下,屏幕上的位置都是由它们的行与列所决定的。有一点须指出:字符状态左上角坐标为(1,1),但图形左上角坐标为(0,0)。

了解字符屏幕和图形函数与窗口和视口的关系是很重要的。例如,字符屏幕光标位置函数gotoxy()将光标移到窗口的x,y位置上,这未必是相对于整个屏幕。下面介绍常用的几类字符屏幕函数的功能用途、操作方法及其例行程序。

一、屏幕操作函数

编写程序绘图经常要用到对字符屏幕进行操作。例如,在往屏幕上写字符之前,首先要将屏幕清除干净。又如,有时需要在屏幕上多处写上肉中刺样的字符内容,这时最好用屏幕拷贝来高效率地完成这一任务。对这些操作,Borland C++提供了一系列字符屏幕操作函数来实现。

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

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<=endy-starty;i++){

gotoxy(1,i);

putch('1');

gotoxy(endx-startx+1,i);

putch('1');

}

}

main()

{

void border(int,int,int,int);

clrscr();

window(6,8,38,12);

border(6,8,38,12);

gotoxy(2,2);

printf("window 1");

window(8,16,40,24);

border(8,16,40,24);

gotoxy(3,2);

printf("window 2");

getch();

}

4. clreol() 清除光标行尾字符函数

功能:函数clreol()在当前字符窗口中清除从光标位置到行尾的所有字符,而光标位置保持不变。用法:它的调用方式为void clreol(void);

说明:此函数的相应头文件为 conio.h

返回值:无

例:程序中使用了函数clreol()和clrscr()

#i nclude "conio.h>

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()函数的用法。

#i nclude "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行

#i nclude "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));

三、屏显状态函数

这里提供三个在文本模式下屏幕显示状态的函数

17. wherex() 光标处x坐标函数

功能:函数wherex()返回当前窗口中光标处横向坐标。

用法:此函数调用方式为int wherex(void);

说明:这个函数调用无参数,其对应的头文件是conio.h

返回值:函数调用成功,返回光标处x坐标值。

例:调用这个函数的实例见18.wherey()函数的例中。

18. wherey() 光标处y坐标函数

功能:函数wherey()返回当前窗口中光标处纵向坐标。

用法:该函数调用方式为int wherey(void);

说明:此函数调用无参数,其相应的头文件是conio.h

返回值:函数调用成功,返回光标处y坐标值。

例:调作函数wherex()与wherey(),返回当前光标处x坐标与y坐标,并赋给整型变量xpos ,ypos。

int xpos,ypos;

xpos=wherex();

ypos=wherey();

19. gettextinfo() 获取文本窗口信息函数

功能:函数gettextinfo()获取当前文本窗口信息,并存放在实参结构中。

用法:函数调用方式为void gettextinfo(struct text-info *info);

说明:函数中参数info 为struct text-info结构型指针,struct text-info结构在此函数相应的头文件中定义为:

struct text-info{

unsigned char winleft; // 窗口左上角x坐标

unsigned char wintop; // 窗口左上角y坐标

unsigned char winright; // 窗口右下角x坐标

unsigned char winbottom; // 窗口右下角y坐标

unsigned char attribute; // 文本属性

unsigned char normattr; // 正常属性

unsigned char currmode; // 当前屏显模式

unsigned char screenhight // 文本窗口高度(以行数计)

unsigned char screenwidth; // 文本窗口宽度(以字符个数计)

unsigned char curx; // 光标处x坐标

unsigned char cury; // 光标处y坐标

};

记住,调用函数gettextinfo()时,要传递struct text-info结构型指针或该结构的首地址,不要传递结构变量本身。

这个函数对应的头文件是conio.h

返回值:返回文本窗口角点坐标、高宽度、文本属性等值,并存放在info所指向的结构变量中。

例:程序语句说明如何正确调用gettextinfo()函数:

struct text-info win-status;

gettextinfo(&win-status);

二、图形显示

一、确定显示卡

二、选择显示模式

三、图形显示

20. detectgraph() 显示卡检测函数

21. initgraph() 图形初始化函数

22. getdrivername() 获取图形驱动程序名的指针

23. getgraphmode() 获取图形模式函数

24. getmoderange()获取模式值范围函数

25. getmaxmode()获取最大显示模式函数

26. getmodename()获取显示模式名函数

27. graphdefaults()图形设置复位缺省值函数

28. setgraphmode() 设置图形模式函数

29. restorecrtmode() 恢复文本显示模式函数

30. graphresult() 图形操作结果函数

31. grpaherrormsg() 图形错误信息函数

32. setgraphbufsize()设置图形缓冲区大小函数

33. setactivepage() 设置可输出显示页函数

34. setvisualpage() 设置可见显示页数

35. closegraph()关闭图形模式函数

一、确定显示卡

微机系统显示部分由显示器(monitor)和显示卡(adapter)两部分组成。显示器是独立于主机的一种外部设备,显示卡或称显示适配卡,也有的称图形卡,是插在主机上的一块电路板。但也有的显示卡与主机板设计在一起。显示卡包括寄存器组、存储器和控制电路三大部分。其中存储器又包括显示RAM和ROM BIOS两部分,微机对显示屏幕的所有操作都是通过显示卡来实现的。因此要进行图形显示,首先要确定计算机上安装的是何种显示卡。一种方法是询问计算机或终端使用者,确定将要使用的显示卡类型。这种方法很难,因为甚至专业程序员也不总是能确定他正在使用什么样的硬件。另一种方法是用软件查询硬件以识别当前的配置。如果有一些识别硬件的标准,这就很简单了。在Borland C中对现在所使用的各种显示卡提供了支持,这只要调用detectgraph()函数就可以了,该函数为程序员确定计算机上使用的显示卡类型。

二、选择显示模式

显示模式是指显示卡支持的分辨率与相应的颜色配置。每台计算机都配置了某种类型显示卡,可以为该显示卡指定显示模式。

三、图形显示

进行图形显示首先要确定显示卡,然后选择其显示模式。这些工作都可以调用图形功能函数来完成,其实就是把适合于显示卡的图形驱动程序装入内存。如果图形驱动程序未装入内存,那么图形函数就不能操作。

20. detectgraph() 显示卡检测函数

功能:函数detectgraph()在计算机上安装有显示卡的情况下,测定其显示卡的类型。

用法:此函数调用方式为void detectgraph(int *driver,int *mode);

说明:函数把driver所指向的整型变量设置为图形驱动程序的代码,把mode所指向的整型变量设置为显示卡

支持的最高有效模式(即该显示卡能支持的最高分辨率)。

该函数相应的头文件为graphics.h

返回值:返回适合于该显示卡的图形驱动程序的代码(也称等价值),并存放在driver指向的变量中。若计算机系统中无图形硬件,则由driver指向的变量设置为-2。

例:检测计算机是否装有显示卡:

int driver,mode;

detectgraph(&driver,&mode);

if(driver==-2)

{

printf("no graphics adapter in the computer");

exit(1);

}

21. initgraph() 图形初始化函数

功能:函数initgraph()用于初始化图形系统,把适合的图形驱动程序装入内存,设置图形函数所用的显示模式。用法:该函数调用方式为void initgraph(int *driver,int *mode,char *path);

说明: 1) 函数中参数driver指向图形驱动程序(或者等价值)。

在头部文件graphics.h中定义了图形驱动程序的宏名与其等价,如下:

宏名等价值

------------------------------

DETECT 0

CGA 1

MCGA 2

EGA 3

EGA64 4

EGAMONO 5

IBM8514 6

HERCMONO 7

ATT400 8

VGA 9

PC3270 10

--------------------------------

注:在现在的计算机中,上表中的许多显示卡已经过时,不再使用。

这样就不必担心图形驱动程序的准确名字,而只要用其等价值即可,若使用detect(即等价值0)时,initgraph()函数自动检测当前计算机中装有的显示卡类型,并且选用最大分辨率的显示模式。

2)参数mode指向显示模式或用等价值(风表1-5),mode所指的值必须是有效模式之一。

3)参数path指向图形驱动程序所在的路径,例如path="C:\TC\BG1".若没有指定路径,就在当前目录下寻找。

一般图形驱动程序包含在.BGI文件中,这些文件是系统可以得到的。这个函数对应的头文件是graphics.h。返回值:无

例:调用initgraph()自动检测硬件图形系统,并选用最大分辨率显示模式。

init drver,mode;

driver=DETECT;

mode=0;

initgraph(&driver,&mode,"");

22. getdrivername() 获取图形驱动程序名的指针

功能:函数getdrivername()返回指向当前图形驱动程序名的指针。

用法:此函数调用方式为char *getdrivername(void);

说明:本函数可以用来检测显示卡,但只能在initgraph()设置图形驱动程序和显示模式之后调用。

该函数相应的头文件为graphics.h

返回值:返回一指针,指向含有当前图形驱动程序名的字符串。

例:显示当前图形驱动程序名:

#i nclude

#i nclude

void main()

{

int graphdriver=DETECT,graphmode;

char *s;

initgraph(&graphdriver,&graphmode,"");

s=getdrivername();

outtext("Using driver:");

outtext(s);

getch();

closegraph();

}

23. getgraphmode() 获取图形模式函数

功能:函数getgrapgmode()返回当前图形模式。

用法:该函数调用方式为int getgraphmode(void);

说明: getgraphmode()函数无参数调用。

这个函数对应的头文件是graphics.h

返回值:返回initgraph()或setgraphmode()所设置的当前图形模式值。

例:显示当前图形模式的代码:

printf("graphics mode is %d",getgraphmode());

24. getmoderange()获取模式值范围函数

功能:函数getmoderange()返回指定的图形驱动程序能够支持的最低和最高模式值。

用法:函数调用方式为 void getmoderange(int driver,int *lowmode,int himode);

说明:参数driver是用来调用此函数时,指定图形驱动程序等价值或宏名。

其有效值如下:

-------------------------------------

宏名等价值

-------------------------------------

DETECT 0

CGA 1

MCGA 2

EGA 3

EGA64 4

EGAMONO 5

IBM8514 6

HERCMONO 7

ATT400 8

VGA 9

PC3270 10

-------------------------------------

注:上表中的许多显示卡在现在的计算机上已经过时,仅作参考。

该函数想应的头文件为graphics.h

返回值:返回的最小和最大有效值存放在参数指针lowmode和himode分别指向的整型变量中。

例:显示当前图形硬件的显示模式的范围值:

#i nclude"graphics.h"

void main()

{

int driver,mode;

int low,high;

mode=0;

initgraph(&driver,&mode,"");

getmoderange(driver,&low,&high);

printf("mode range:%d--%d,low,high);

getch();

rstorecrtmode();

}

25. getmaxmode()获取最大显示模式函数

功能:函数getmaxmode()返回当前加载的图形驱动程序所支持的最大有效显示模式。

用法:函数调用方式为int getmaxmode(void);

说明:本函数无参数调用,返回图形驱动程序所支持的最大显示模式,所有图形驱动程序支持从0到getmaxmode()函数返回值中的任一整数值(对应的显示模式)。

这个函数对应的头文件是graphics.h

返回值:返回图形驱动程序所支持的显示模式最大值。

例:显示当前最大显示模式:

printf("The maxmode of this driver is %d\n",getmaxmode());

26. getmodename()获取显示模式名函数

功能:函数getmodename()可获取当前图形驱动程序支持的指定显示模式的名字。

用法:此函数调用方式为char *getmodename(int modecode);

说明:参数modecode为整型值。用以指定一显示模式值调用该函数。

这个函数对应的头文件graphics.h

返回值:返回指定模式值的显示模式名。

例:显示当前最大显示模式名:

#i nclude

#i nclude

void main()

{

int graphdriver=DETECT,graphmode;

int modecode;

char *s;

initgraph(&graphdriver,&graphmode,"");

modecode=getmaxmode();

s=getmodename(modecode);

outtext("The maxmode name is:");

outtext(s);

getch();

closegraph();

}

27. graphdefaults()图形设置复位缺省值函数

功能:函数grpahdefaults()把所有图形设置复位为它们的缺省值,这包括把图形视口复位为全屏幕;当前位置定位在0,0;调色板、背景色和绘图色都被复位;填充颜色、填充图样、文本文字和排齐方式都返回到它位的缺省值。

用法:此函数调用方式为void graphdefaults(void);

说明:该函数无参数调用。

这个函数相应的头文件为graphics.h

返回值:无

例:将图形系统恢复为其缺省值:

graphdefaults();

28. setgraphmode() 设置图形模式函数

功能:函数setgraphmode()用当前图形驱动程序有效的图形模式调用,一旦被调用,setgraphmode()选择一个新的图形模式。注意,图形显示模式必须事先由initgraph()初始化。

用法:该函数调用方式为void setgraphmode(int mode);

说明:参数mode调用时为指定的模式值。

此函数相应的头部文件是graphics.h

返回值:无

例:把VGA图形卡设置为VGAMED模式:

setgraphmode(VGAMED); // 图形系统已经初始化

29. restorecrtmode() 恢复文本显示模式函数

功能:函数restrecrtmode()将显示模式恢复到调用initgraph()时检测出的初始文本模式。

用法:这个函数调用方式为void restorecrtmode(void);

说明:函数restorecrtmode()和setgraphmode()函数一起使用,可以实现文本与图形显示之间的切换。

此函数对应的头文件为graphics.h

返回值:无

例:恢复显示模式为初始文本模式:

restorecrtmode();

30. graphresult() 图形操作结果函数

功能:函数graphresult()函数返回最后一次图形操作的代码。

用法:此函数调用方式为int graphresult(void);

说明: C为图形设置了代码,它们是从-15到0的整数值。其含义见表1-6。

调用该函数时,出错状态被复位为0,所以返回值(代码)最好存于变量中,以供需要时检测,

进行下一步图形操作。

这个函数对应的头部文件是graphics.h

返回值:返回最后一次图形操作结果相应的代码。

例:调用graphresult()函数的实例见下面grapherrormsg()函数的例子。

31. grpaherrormsg() 图形错误信息函数

功能:函数grapherrormsg()返回指向出错代码相应的错误信息字符串的指针。

用法:此函数调用方式为char *grapherrormsg(int errcode);

说明:参数errcode值,即出错代码由调用函数graphresult()获得。这里所有出错代码及相应的错误信息如表1-6中所述。

该函数相应的头文件是grpahics.h

返回值:返回一个指向该出错代码相应的错误信息字符串的指针。

例:用文字形式显示有关出错代码相应的错误信息:

int errorcode;

errorcode=graphresult();

printf(%s",grapherrormsg(errcode));

32. setgraphbufsize()设置图形缓冲区大小函数

功能:函数setgraphbufsize()用来设置有的图形函数(如floodfill等)所要用到的内存缓冲区大小。

用法:函数调用方式为unsigned setgraphbufsize(unsigned bufsize);

说明:这里无符号参数bufsize为所设置的缓冲区大小。

一般不需要用到该函数,仅使用由initgraph()函数产生的内存缓冲区就够了,缓冲区大小缺省时为4KB(即4096个字节),足以用来填充一个大约有650个顶点的多边形,但是为了节省内存,用户可以减少缓冲区的大小,或者由于需要更多的缓冲区内存,这时可用函数setgraphbufsize()来增加缓冲区大小。注意,使用setgraphbufsize()函数必须在调用initgraph()之前。

返回值:返回先前定义的图形缓冲区字节数。

例:调用此函数设置图形缓冲区为8KB字节:

setgraphbufsize(0x2000);

33. setactivepage() 设置可输出显示页函数

功能:函数setactiveage()设置用作图形输出的显示页。

用法:这个函数调用方式为void setactivepage(int pagenum);

说明:参数pagenum为选择的显示页号,如果调用成功,那么后续图形输出就写到选定的输出页上。缺省时是以0页作为当前输出页。该函数只在图形驱动程序及其显示模式支持多个显示页时才起作用。

此函数相应的头文件为graphics.h

返回值:无

例:设置1页为输出显示页:

setactivepage(1);

34. setvisualpage() 设置可见显示页数

功能:函数setvisualpage()设置屏幕上可见的显示页。

用法:函数调用方式为void setvisualpage(int pagenum);

说明:参数pagenum为设置的显示页号。缺省时是以0页作为当前可见页。调用这个函数和调用setactivepage()一样,仅在图形驱动程序及其显示模式支持多个显示页时才有效。用户可以用系统所支持的任何显示页,在它们之间切换,当然一次只能有一个显示页在屏幕上可见,有时需要在一页上建立后备图形葨图像,它在当时不显示,一旦需要时,可以马上切换到该页,如要实现动画效果,只需切换显示页号即可。用setvisualpage()函数选定实际显示在屏幕上的可见页,用setactivepage()函数选择当前图形输出页,从而实现图形页之间的显示切换,通常这两个函数都是缺省的,这时输出页就是可见页。若不绘制动画就不需要用到这两个函数。

这两个函数对应的头文件是graphics.h

返回值:无

例:设置可见页为第1页:

setvisualpage(1);

35. closegraph()关闭图形模式函数

功能:函数closegraph()将系统图形模式关闭,,复位到initgraph()初始文本模式,并且释放图形驱动程序、字体和内部缓冲区所占用的系统内存。

用法:这个函数调用方式为void closegraph(void);

说明:当用户的程序既用到图形输出又用到非图形输出时,应该调用此函数。特别是程序多次调用initgraph()函数的情况,要相应地调用closegraph函数,释放调用initgraph()所占用的内存,否则内存很快就满了,程序无法运行,如果程序结束,也可以用restorecrtmode()函数代替该函数,这样任何分配的内存都将释放。

此函数对应的头文件是graphics.h

返回值:无

例:关闭图形系统:

closegraph();

三、绘图函数-01

一、屏幕和视口设置与清除函数

36. setviewport() 设置图形视口函数

37. clearviewport()清除图形视口函数

38. cleardevice() 清除屏幕函数

39. getviewsettings() 获取图形视口设置函数

二、调色板和颜色函数

40. setpalette()设置调色板函数

41. setallpalette()设置整个调色板函

42. setbackcolor() 设置背景颜色函数

43. setcolor() 设置颜色函数

44. getbkcolor() 返回背景色函数

45. getcolor() 返回当前绘图颜色

46. getmaxcolor()返回最大颜色值函数

47. getpalette() 获取调色板函数

48. getpalettesize() 返回调色板大小函数

49. getdefaultpalette() 获取缺省调色板函数

三、屏幕位置函数

50. getmaxx()返回最大x坐标函数

51. getmaxy() 返回最大y坐标函数

52. getx() 返回x坐标函数

53. gety() 返回y坐标函数

54. moveto()函数

55. moverel() 相对移动函数

Borland C++提供了一整套综合性的图形函数,上节介绍了其中有关图形显示的函数,本节介绍其中的绘图函数,下节将介绍它的图形文本函数。

一般绘图时,首先要清除屏幕,设置图形视口,设置绘图颜色,然后在屏幕上某个位置画点或直线或曲线等。下面给出具有这些功能的函数。

一、屏幕和视口设置与清除函数

36. setviewport() 设置图形视口函数

功能:函数setviewport() 设置当前图形视口。

用法:函数调用方式为void setviewport(int left,int top,int right,int bottom,int clip);

说明:参数left,top是左上角坐标,right,bottom是右下角坐标,它们都是绝对屏幕坐标。

传给setviewport()的第五个参数是clip,如果clip为1,则超出视口的输出图形自动被裁剪掉,即所有作图限制于当前图形视口之内,如果clip为0,则不做裁剪,即作图将无限制地扩展于视口周界之外,直到屏幕边界。若无效参数传入setviewport(),则graphresult()函数返回值-11,先前视口设置仍有效。

setviewport()函数的对应头文件为 graphics.h

返回值:无

例:建立对角为(6,6)和(88,88)的视口,并带有裁剪功能:

setviewport(6,6,88,88,1);

37. clearviewport()清除图形视口函数

功能:函数clearviewport()清除当前图形视口,并把光标从当前位置移到原点(0,0)。

用法:该函数调用方式为void clearviewport(void);

说明:此函数调用执行后,当前图形视口将不复存在。

这个函数对应的头文件是graphics.h

返回值:无

例:清除当前图形视口,但并非整个屏幕:

clearviewport();

38. cleardevice() 清除屏幕函数

功能:函数cleardevice() 清除整个屏幕,并且将当前位置移到屏幕原点。

用法:此函数调用方式为void cleardevice(void);

说明:该函数类似于文本模式下的函数clrscr(),但clrscr()函数不能在图形方式下工作;同样cleardevice()函数不能在文本模式下工作。

这个函数相应的头文件为graphics.h

返回值:无

例:清除当前整个屏幕:

cleardevice();

39. getviewsettings() 获取图形视口设置函数

功能:函数getviewsettings()返回当前图形视口坐标和裁剪标志,坐标是绝对屏幕坐标,裁剪标志 1或 0。用法:此函数调用方式为void getviewsettings(struct viewporttype *info);

说明:该函数执行后,把有关当前视口的信息装入info指向的viewporttype型结构中。

viewporttype结构定义如下:

struct viewporttype {

int left,top,right,bottom;

int clipflag;

}

这里left,top中存放视口左上角坐标,right,bottom中存放视口右下角坐标,clipflag中存放裁剪标志,若clipflag为1 ,执行裁剪以防止超出视口边界,如果clipflag为0,则不对超出边界输出作裁剪。

getviewsettings()函数对应的头文件是graphics.h

返回值:无

例:显示当前视口角点坐标:

struct viewporttype info;

getviewsettings(&info);

printf("left:%d top:%d\n",info.left,info.top);

printf("right:%d bottom:%d\n",info.right,info.bottom);

二、调色板和颜色函数

进行图形显示或绘图,除了要知道用什么显示卡以及相应的图形驱动程序外,还必须了解它们支持什么样的调色板颜色。

40. setpalette()设置调色板函数

功能:函数setpalette()可对调色板上的颜色的色彩值重新设定。

用法: setpalette()函数调用方式为void setpalette(int value,int color);

说明:参数value为色彩值,color为色彩值相应的颜色名。当需要将一颜色指定为一色彩值地,即可调用此函数来设置。

表1-7 预先定义的调色板与色彩

-----------------------------------------------------------------

调色板色彩0 色彩1 色彩2 色彩3

-----------------------------------------------------------------

C0 黑色淡绿红浅黄色

C1 黑色淡青粉红白色

C2 黑色绿色红色棕色

C3 黑色青色品粉红淡灰色

-----------------------------------------------------------------

这个函数相对应的头文件为graphics.h

返回值:无

41. setallpalette()设置整个调色板函数

功能:函数setallpalette()对某个调色板上的所有颜色重新设定彩色值。

用法:函数调用方式为void setallpalette(struct palettetype *p);

说明:在低分辨率图形显示模式下,该函数无效。若函数调用成功,则把p指向的palettetype结构中的色彩值设置为当前调色板所有颜色的新色彩值。

palettetype结构定义如下:

struct palettetype {

unsigned char size;

signed char color[16];

};

这里必须把size设置为调色板颜色的数目,并把每个色彩值都装入color数组相应元素中,然后才可用于调用函数。

此函数对应的头文件是graphics.h

返回值:无

例:把16色的EGA/VGA显示卡调色板改为其前16种颜色:

struct palettetype;

int i;

for(i=0;i<16;i++) p.color[i]=i;

p.size=16;

setallpalette(&p);

42. setbackcolor() 设置背景颜色函数

功能:函数setbackcolor()把当前调色板颜色的第一个值改成指定的颜色值,以设置背景颜色。

用法:此函数调用方式为void setbackcolor(int color);

说明:参数color为指定的背景色,其有效值可以是颜色符号名,也可以是色彩值。表1-8列出了背景颜色供

C语言常用函数

C语言的常用库函数 函数1。absread()读磁盘绝对扇区函数 原形:int absread(int drive,int num,int sectnum,void *buf) 功能:从drive指定的驱动器磁盘上,sectnum指定的逻辑扇区号开始读取(通过DOS中断0x25读取)num 个(最多64K个)扇区的内容,储存于buf所指的缓冲区中。 参数:drive=0对应A盘,drive=1对应B盘。 返回值:0:成功;-1:失败。 头文件:dos.h 函数2。abswrite()写磁盘绝对扇区函数 原形:int abswrite(int drive,int nsects,int lsect,void *buffer) drive=0(A驱动器)、1(B驱动器)、 nsects=要写的扇区数(最多64K个); lsect=起始逻辑扇区号; buffer=要写入数据的内存起始地址。 功能:将指定内容写入(调用DOS中断0x26)磁盘上的指定扇区,即使写入的地方是磁盘的逻辑结构、文件、FAT表和目录结构所在的扇区,也照常进行。 返回值:0:成功;-1:失败。 头文件:dos.h 函数3。atof()将字符串转换成浮点数的函数 原形:double atof(const char *s) 功能:把s所指向的字符串转换成double类型。 s格式为:符号数字.数字E符号数字 返回值:字符串的转换值。 头文件:math.h、stdlib.h 函数4。atoi()将字符串转换成整型数的函数 原形:int atoi(const char *s) 功能:把s所指向的字符串转换成int类型。 s格式为:符号数字 返回值:字符串的转换值。若出错则返回0。 头文件:stdlib.h 函数5。atol()将字符串转换成长整型数的函数 原形:long atol(const char *s)

C语言常用函数手册

1.分类函数,所在函数库为ctype.h int isalpha(int ch) 若ch是字母('A'-'Z','a'-'z')返回非0值,否则返回0 int isalnum(int ch) 若ch是字母('A'-'Z','a'-'z')或数字('0'-'9'),返回非0值,否则返回0 int isascii(int ch) 若ch是字符(ASCII码中的0-127)返回非0值,否则返回0 int iscntrl(int ch) 若ch是作废字符(0x7F)或普通控制字符(0x00-0x1F) 返回非0值,否则返回0 int isdigit(int ch) 若ch是数字('0'-'9')返回非0值,否则返回0 int isgraph(int ch) 若ch是可打印字符(不含空格)(0x21-0x7E)返回非0值,否则返回0 int islower(int ch) 若ch是小写字母('a'-'z')返回非0值,否则返回0 int isprint(int ch) 若ch是可打印字符(含空格)(0x20-0x7E)返回非0值,否则返回0 int ispunct(int ch) 若ch是标点字符(0x00-0x1F)返回非0值,否则返回0 int isspace(int ch) 若ch是空格(' '),水平制表符('\t'),回车符('\r'), 走纸换行('\f'),垂直制表符('\v'),换行符('\n') 返回非0值,否则返回0 int isupper(int ch) 若ch是大写字母('A'-'Z')返回非0值,否则返回0 int isxdigit(int ch) 若ch是16进制数('0'-'9','A'-'F','a'-'f')返回非0值, 否则返回0 int tolower(int ch) 若ch是大写字母('A'-'Z')返回相应的小写字母('a'-'z') int toupper(int ch) 若ch是小写字母('a'-'z')返回相应的大写字母('A'-'Z') 2.数学函数,所在函数库为math.h、stdlib.h、string.h、float.h int abs(int i) 返回整型参数i的绝对值 double cabs(struct complex znum) 返回复数znum的绝对值 double fabs(double x) 返回双精度参数x的绝对值 long labs(long n) 返回长整型参数n的绝对值 double exp(double x) 返回指数函数ex的值 double frexp(double value,int *eptr) 返回value=x*2n中x的值,n存贮在eptr中double ldexp(double value,int exp); 返回value*2exp的值 double log(double x) 返回logex的值 double log10(double x) 返回log10x的值 double pow(double x,double y) 返回xy的值 double pow10(int p) 返回10p的值 double sqrt(double x) 返回+√x的值 double acos(double x) 返回x的反余弦cos-1(x)值,x为弧度 double asin(double x) 返回x的反正弦sin-1(x)值,x为弧度 double atan(double x) 返回x的反正切tan-1(x)值,x为弧度 double atan2(double y,double x) 返回y/x的反正切tan-1(x)值,y的x为弧度double cos(double x) 返回x的余弦cos(x)值,x为弧度 double sin(double x) 返回x的正弦sin(x)值,x为弧度 double tan(double x) 返回x的正切tan(x)值,x为弧度 double cosh(double x) 返回x的双曲余弦cosh(x)值,x为弧度 double sinh(double x) 返回x的双曲正弦sinh(x)值,x为弧度

C语言中常用的库函数

字符处理函数 本类别函数用于对单个字符进行处理,包括字符的类别测试和字符的大小写转换 头文件ctype.h 函数列表<> 函数类别函数用途详细说明 字符测试是否字母和数字isalnum 是否字母isalpha 是否控制字符iscntrl 是否数字isdigit 是否可显示字符(除空格外)isgraph 是否可显示字符(包括空格)isprint 是否既不是空格,又不是字母和数字的可显示字符ispunct 是否空格isspace 是否大写字母isupper 是否16进制数字(0-9,A-F)字符isxdigit 字符大小写转换函数转换为大写字母toupper 转换为小写字母tolower 地区化 本类别的函数用于处理不同国家的语言差异。 头文件local.h 函数列表 函数类别函数用途详细说明 地区控制地区设置setlocale 数字格式约定查询国家的货币、日期、时间等的格式转换localeconv 数学函数 本分类给出了各种数学计算函数,必须提醒的是ANSI C标准中的数据格式并不符合IEEE754标准,一些C语言编译器却遵循IEEE754(例如frinklin C51) 头文件math.h 函数列表 函数类别函数用途详细说明 错误条件处理定义域错误(函数的输入参数值不在规定的范围内) 值域错误(函数的返回值不在规定的范围内) 三角函数反余弦acos 反正弦asin

反正切atan 反正切2 atan2 余弦cos 正弦sin 正切tan 双曲函数双曲余弦cosh 双曲正弦sinh 双曲正切tanh 指数和对数指数函数exp 指数分解函数frexp 乘积指数函数fdexp 自然对数log 以10为底的对数log10 浮点数分解函数modf 幂函数幂函数pow 平方根函数sqrt 整数截断,绝对值和求余数函数求下限接近整数ceil 绝对值fabs 求上限接近整数floor 求余数fmod 本分类函数用于实现在不同底函数之间直接跳转代码。头文件setjmp.h io.h 函数列表 函数类别函数用途详细说明 保存调用环境setjmp 恢复调用环境longjmp 信号处理 该分类函数用于处理那些在程序执行过程中发生例外的情况。 头文件signal.h 函数列表 函数类别函数用途详细说明 指定信号处理函数signal 发送信号raise 可变参数处理 本类函数用于实现诸如printf,scanf等参数数量可变底函数。

C语言常用函数名及用法

字符函数和字符串函数 头文件:字符串函数头文件:#include 字符函数头文件:#include putchar:输出一个 putchar(a):输出字符变量a的值,(其中a可为字符变量,整形变量,字符常量,整形常量) getchar:输入一个字符 a=getchar(); putchar(a);结果为b printf(格式控制符,输出列表); scanf(格式控制符,地址列表); 输入形式与格式控制部分对应 1.当为两个连续输入时:scanf(“%d%d”,&a,&b); 输入量数据之间可为:一个或多个空格,也可以用enter,tab无逗号时输入时不能用逗号作分隔。 2.格式控制中两%d有两个空格,输入时两数据间应有两个空格或两个以上。 3.当为“:”时输入时应对应一样,当为:scanf(“a=%d,b=%d”,&a,&b);输入a=12,b=22。 4.当格式控制符为%c时,输入时空格与转义字符都作为有效字符记录在里面:scanf(“%c%c%c”,&a,&b,&c); 输入时:ab c↙空间不能插空格或其他符

5. Scanf(“%d%c%f”,&a,&b,&c); 输入时1234a123h26↙在输入遇到时空格回车 tab或其他非法输入就会认定输入完毕 Gets (字符数组):读入字符串函数 Gets(str)从键盘键入a b↙括号里为字符数组str的起始地址,Puts(字符数组):输出字符串函数 Strcat(字符数组1,字符数组2):字符串连接函数(2连接在1后面) Strcpy和strncpy:字符串复制函数 Strcpy(字符数组1,字符数组2):将2复制到1 数组1 要为数组名,字符串2可以为数组名或者字符串 Strncpy(str1,str2,2):将str2的前两个字符复制到str1,取代str1的前两个字符 Strcmp:字符串比较函数 Strcmp(str1,str2):相等则为0(对字符串自左向右逐个字母进行比较) Strlen(字符数组):测字符串的实际长度 Strlwr(字符串)将字符串转换为大写 Strupr(字符串)将字符串转换为小写

C语言常用的库函数

库函数并不是C语言的一部分,它是由编译系统根据一般用户的需要编制并 提供给用户使用的一组程序。每一种C编译系统都提供了一批库函数,不同的 编译系统所提供的库函数的数目和函数名以及函数功能是不完全相同的。ANSI C标准提出了一批建议提供的标准库函数。它包括了目前多数C编译系统所提供 的库函数,但也有一些是某些C编译系统未曾实现的。考虑到通用性,本附录 列出ANSI C建议的常用库函数。 由于C库函数的种类和数目很多,例如还有屏幕和图形函数、时间日期函数、 与系统有关的函数等,每一类函数又包括各种功能的函数,限于篇幅,本附录不 能全部介绍,只从教学需要的角度列出最基本的。读者在编写C程序时可根据 需要,查阅有关系统的函数使用手册。 1.数学函数 使用数学函数时,应该在源文件中使用预编译命令: #include或#include "math.h" 函数名函数原型功能返回值 acos double acos(double x);计算arccos x的值,其中-1<=x<=1计算结果 asin double asin(double x);计算arcsin x的值,其中-1<=x<=1计算结果 atan double atan(double x);计算arctan x的值计算结果 atan2double atan2(double x, double y);计算arctan x/y的值计算结果 cos double cos(double x);计算cos x的值,其中x的单位为弧度计算结果 cosh double cosh(double x);计算x的双曲余弦cosh x的值计算结果 exp double exp(double x);求e x的值计算结果

C语言函数大全

功能: 异常终止一个进程 用法: void abort(void) 函数名: abs 功能: 求整数的绝对值 用法: int abs(int i) 函数名: absread, abswirte 功能: 绝对磁盘扇区读、写数据 用法: int absread(int drive, int nsects, int sectno, void *buffer) int abswrite(int drive, int nsects, in tsectno, void *buffer 函数名: access 功能: 确定文件的访问权限 用法: int access(const char *filename, int amode) 函数名: acos 功能:反余弦函数 用法: double acos(double x) 函数名: allocmem 功能: 分配DOS存储段 用法:int allocmem(unsigned size, unsigned *seg) 函数名: arc 功能: 画一弧线 用法:void far arc(int x, int y, int stangle, int endangle, int radius)函数名: asctime 功能: 转换日期和时间为ASCII码 用法:char *asctime(const struct tm *tblock) 函数名: asin 功能:反正弦函数 用法: double asin(double x) 函数名: assert 功能: 测试一个条件并可能使程序终止 用法:void assert(int test) 函数名: atan 功能: 反正切函数 用法: double atan(double x)

c语言中常用的函数和头文件

头文件ctype.h 函数列表<> 函数类别函数用途详细说明 字符测试是否字母和数字isalnum 是否字母isalpha 是否控制字符iscntrl 是否数字isdigit 是否可显示字符(除空格外)isgraph 是否可显示字符(包括空格)isprint 是否既不是空格,又不是字母和数字的可显示字符ispunct 是否空格isspace 是否大写字母isupper 是否16进制数字(0-9,A-F)字符isxdigit 字符大小写转换函数转换为大写字母toupper 转换为小写字母tolower 地区化 本类别的函数用于处理不同国家的语言差异。 头文件local.h 函数列表 函数类别函数用途详细说明 地区控制地区设置setlocale 数字格式约定查询国家的货币、日期、时间等的格式转换localeconv 数学函数 本分类给出了各种数学计算函数,必须提醒的是ANSI C标准中的数据格式并不符合IEEE754标准,一些C语言编译器却遵循IEEE754(例如frinklin C51) 头文件math.h 函数列表 函数类别函数用途详细说明 错误条件处理定义域错误(函数的输入参数值不在规定的范围内) 值域错误(函数的返回值不在规定的范围内) 三角函数反余弦acos 反正弦asin 反正切atan 反正切2 atan2 余弦cos

正弦sin 正切tan 双曲函数双曲余弦cosh 双曲正弦sinh 双曲正切tanh 指数和对数指数函数exp 指数分解函数frexp 乘积指数函数fdexp 自然对数log 以10为底的对数log10 浮点数分解函数modf 幂函数幂函数pow 平方根函数sqrt 整数截断,绝对值和求余数函数求下限接近整数ceil 绝对值fabs 求上限接近整数floor 求余数fmod 本分类函数用于实现在不同底函数之间直接跳转代码。头文件setjmp.h io.h 函数列表 函数类别函数用途详细说明 保存调用环境setjmp 恢复调用环境longjmp 信号处理 该分类函数用于处理那些在程序执行过程中发生例外的情况。 头文件signal.h 函数列表 函数类别函数用途详细说明 指定信号处理函数signal 发送信号raise 可变参数处理 本类函数用于实现诸如printf,scanf等参数数量可变底函数。 头文件stdarg.h 函数列表

【C语言吧】做游戏常用函数

时间延迟函数 函数名: delay 功能: 将程序的执行暂停一段时间(毫秒) 用法: void delay(unsigned milliseconds); 重画屏幕区域的函数 函数名:getimage 功能:将指定区域的一个位图存到主存中 用法:void far getimage( int left, int top, int right, int bottom, void far *bitmap); 函数名:putimage 功能:在屏幕上输出一个位图 用法:void far putimage( int x, int y, void far *bitmap, int op ); 图像大小函数 函数名: imagesize 功能: 返回保存位图像所需的字节数 用法: unsigned far imagesize( int left, int top, int right, int bottom ); 异或模式函数 函数名: setwritemode 功能: 设置图形方式下画线的输出模式 用法: void far setwritemode(int mode); 参数MODE可以被设置位COPY_PUT或者XOR_PUT两种模式。当mode被设置为XOR_PUT,其后的图形操作将都采用异或方式。此外之前提到的putimage()函数也可以采用异或模式向屏幕复制图像。 检测键盘输入函数 函数名: kbhit 功能: 检查当前按下的键 用法: int kbhit(void); 键盘接口函数 函数名: bioskey 功能: 直接使用BIOS服务的键盘接口 用法: int bioskey(int cmd); 该函数通过bois中断0x16执行键盘操作,由参数cmd来决定具体的操作。 Cmd 具体操作 0 读取按键的ascii码 1 测试是否有按键如果没有按键返回0 如果按键为ctrl+brk 返回-1 如果是其他按键返回按键本身键值(直到此按键被取出后恢复0) 2 返回shift key 状态 以下是当cmd为2的时候,返回值的具体含义

C语言中游戏编程常用的函数实例解说

VGA文本16/256K40*25360*4009*16B8000彩色 CGA文本16/1680*25640*2008*8B8000彩色 2/3EGA文本16/6480*25640*3508*14B8000彩色 VGA(3+)文本16/256K80*25720*4009*16B8000彩色 CGA图形4/1640*25320*2008*8B8000彩色 4/5EGA图形4/6440*25320*2008*8B8000彩色 VGA图形4/256K40*25320*2008*8B8000彩色 CGA图形2/1640*25640*2008*8B8000单色 6EGA图形2/6440*25640*2008*8B8000单色 VGA图形2/256K40*25640*2008*8B8000单色 7MDA/EGA文本单色80*25720*3509*14B0000单色 VGA(7+)文本单色80*25720*4009*16B0000单色 D EGA图形16/6440*25320*2008*8A0000彩色 VGA图形16/256K40*25320*2008*8A0000彩色 E EGA图形16/6480*25640*2008*8A0000彩色 VGA图形16/256K80*25640*2008*8A0000彩色 F EGA/VGA图形单色80*25640*3508*14A0000单色 10EGA图形16/6480*25640*3508*14A0000彩色 VGA图形16/256K80*25640*3508*14A0000彩色 11VGA图形2/256K80*30640*4808*16A0000彩色 12VGA图形16/256K80*30640*4808*16A0000彩色 13VGA图形256/256K40*25320*2008*8A000彩色 常规内存函数 申请函数: malloc(),farmalloc(),calloc(),farcalloc(),realloc(),farealloc()函数名:malloc 功能:内存分配函数 用法:void*malloc(unsigned size); 函数名:farmalloc 功能:从远堆中分配存储块 用法:void far*farmalloc(unsigned long size); 函数名:calloc 功能:分配主存储器 用法:void*calloc(size_t nelem,size_t elsize); 函数名:farcalloc 功能:从远堆栈中申请空间

C语言中常见的功能函数

C语言中常见的功能函数(应掌握的编程) 1、两个变量值的交换 void exchang(float *x,float *y) /*形参为两个变量的地铁(指针)*/ {float z; z=*x; *x=*y; *y=z; } void main() {float a,b; scanf(“%f%f”,&a,&b); exchang(&a,&b); /*因为形参是指针,所以实参必须给变量的地址,不能给变量名*/ printf(“a=%f,b=%f”,a,b); } 2、判断一个整数的奇偶 int jou(int n) /*如果是奇数返回1,否则返回0*/ { if(n%2==0) return 0; return 1; } 3、小写字符转换成大写字符 根据实参传给形参的字母,判断是否是小写字母,如果是小写字母,则转换成大写字母,否则不进行转换,函数返回转换后或原来的字符。 本函数仿照toupper()库函数的功能编写(toupper(c) 是将变量c字母转换成大写字母,如果不是小写字母不转换)。 char toupper1(char ch) {if(ch>=’a’&&ch<=’z’) ch-=32; /*小写字母比对应的大写字母ASCII码值大32*/ return ch; } 4、判断一个字符是否是字母(或数字) 根据实参传给形参的字符,判断是否是字母(或数字),如果是字母(或数字)返回1,否则返回0。此函数是根据库函数isalpha()(或isdigit())来编写的。 int isalpha1(char ch) /*判断是否是字母*/ {if(ch>=’A’&&ch<=’Z’||ch>=’a’&&ch<=’z’) return 1; else return 0; } int isdigit1(char ch) /*判断是否是数字字符*/ {if(ch>=’0’&&ch<=’9’) return 1; else return 0; } 5、根据学生成绩,返回其等级 char fun(float cj) {char c; switch((int)cj/10) {case 10:

C语言常用函数

函数名: abort 功能: 异常终止一个进程 用法: void abort(void); 程序例: #include #include int main(void) { printf("Calling abort()\n"); abort(); return 0; /* This is never reached */ } 函数名: abs 功能: 求整数的绝对值 用法: int abs(int i); 程序例: #include #include int main(void) { int number = -1234; printf("number: %d absolute value: %d\n", number, abs(number)); return 0; } 函数名: absread, abswirte 功能: 绝对磁盘扇区读、写数据 用法: int absread(int drive, int nsects, int sectno, void *buffer); int abswrite(int drive, int nsects, in tsectno, void *buffer); 程序例: /* absread example */ #include #include #include #include int main(void) { int i, strt, ch_out, sector; char buf[512]; printf("Insert a diskette into drive A and press any key\n"); getch(); sector = 0; if (absread(0, 1, sector, &buf) != 0) {

常用C语言标准库函数

常用C语言标准库函数 C语言编译系统提供了众多的预定义库函数和宏。用户在编写程序时,可以直接调用这些库函数和宏。这里选择了初学者常用的一些库函数,简单介绍了各函数的用法和所在的头文件。 1.测试函数 Isalnum 原型:int isalnum(int c) 功能:测试参数c是否为字母或数字:是则返回非零;否则返回零 头文件:ctype.h Isapha 原型:int isapha(int c) 功能:测试参数c是否为字母:是则返回非零;否则返回零 头文件:ctype.h Isascii 原型:int isascii(int c) 功能:测试参数c是否为ASCII码(0x00~0x7F):是则返回非零;否则返回零 头文件:ctype.h Iscntrl 原型:int iscntrl(int c) 功能:测试参数c是否为控制字符(0x00~0x1F、0x7F):是则返回非零;否则返回零头文件:ctype.h Isdigit 原型:int isdigit(int c) 功能:测试参数c是否为数字:是则返回非零;否则返回零。 头文件:ctype.h Isgraph 原型:int isgraph(int c) 功能:测试参数c是否为可打印字符(0x21~0x7E):是则返回非零;否则返回零 头文件:ctype.h Islower 原型:int islower(int c) 功能:测试参数c是否为小写字母:是则返回非零;否则返回零 头文件:ctype.h Isprint 原型:int isprint(int c) 功能:测试参数c是否为可打印字符(含空格符0x20~0x7E):是则返回非零;否则返回零 头文件:ctype.h Ispunct 原型:int ispunct(int c) 功能:测试参数c是否为标点符号:是则返回非零;否则返回零

C语言常用头文件及函数

#include(errno.h):错误处理 #include (stdio.h):格式化输入与输出函数 fprintf函数,功能:格式输出(文件) fscanf函数,功能:格式输入(文件) printf函数,功能:格式输出(控制台) scanf函数,功能:格式输入(控制台) fclose函数,功能:关闭文件 fopen函数,功能:打开文件 feof函数,功能:文件结尾判断 ferror函数,功能:文件错误检测 freopen函数,功能:将已存在的流指针和新文件连接 setbuf函数,功能:设置磁盘缓冲区 sscanf函数,功能:从缓冲区中按格式输入 sprintf函数,功能:格式输出到缓冲区 remove函数,功能:删除文件 rename函数,功能:修改文件名称 tmpfile函数,功能:生成临时文件名称 tmpnam函数,功能:得到临时文件路径 fgetc函数,功能:输入一个字符(文件) fgets函数,功能:字符串输入(文件) fputc函数,功能:字符输出(文件) fputs函数,功能:字符串输出(文件) gets函数,功能:字符串输入(控制台) getchar函数,功能:字符输入(控制台) getc函数,功能:字符输入(控制台) putc函数,功能:字符输出(控制台) putchar函数,功能:字符输出(控制台) ungetc函数,功能:字符输出到流的头部 fread函数,功能:直接流读操作 fwrite函数,功能:直接流写操作 fgetpos函数,功能:得到文件位置 fsetpos函数,功能:文件位置设置 fseek函数,功能:文件位置移动 ftell函数,功能:得到文件位置 remind函数,功能:文件位置复零位 perror函数,功能:得到错误提示字符串 clearerr函数,功能:错误清除 puts函数,功能:字符串输出(控制台)

C语言中常用函数大全

(一)输入输出常用函数 1,printf (1)有符号int %[-][+][0][width][.precision][l][h] d -:左对齐 +:正数前加‘+’ 0:右对齐,acwidth.precision,按实际输出,否者左边补零 (2)无符号int %[-][#][0][width][.precision][l][h] u|o|x|X #:”%o %x/X”输出0,0x,0X .precision:同上,TC/BC包含0x/X,VC下不包含 (3)实数输出 %[-][+][#][0][width][.precision][l][L] f|e|E|g|G #:必须输出小数点 .precision:小数位数(四舍五入) (4)字符和字符串的输出 %[-][0][width] c %[-][0][width] [.precision] s .precision:S的前precision位 2,scanf %[*][width] [l][h]Type With:指定输入数据的宽度,遇空格、Tab、\n结束 *:抑制符scanf(“%2d%*2d%3d”,&num1,&num2) 输入123456789\n;num1==12,num2==567. 注意: (1)指定width时,读取相应width位,但按需赋值 Scanf(“%3c%3c”,&ch1,&ch2)输入a bc d efg ch1==a ch2==d (2)%c 输入单字符时“空格、转义字符”均是有效字符 (二)ascll字符/字符串/文件函数 1;字符非格式化输入函数 (1)int getchar(void) 接受字符,以回车结束,回显 (2)int getc(FILE*stream) 从stream中接受字符,以回车结束,回显stream=stdin时,(1)==(2)(3)int getche(void) 直接读取字符,回显conio.h

(整理)C语言常用算法集合.

1.定积分近似计算: /*梯形法*/ double integral(double a,double b,long n) { long i;double s,h,x; h=(b-a)/n; s=h*(f(a)+f(b))/2; x=a; for(i=1;i

} 3.素数的判断: /*方法一*/ for (t=1,i=2;i0;n/=10) k=10*k+n%10; return k; } /*求回文数*/ int f(long n) { long k,m=n; for(k=0;n>0;n/=10) k=10*k+n%10; if(m==k) return 1; return 0; } /*求整数位数*/ int f(long n) { int count; for(count=0;n>0;n/=10) count++; return count; }

单片机C语言(C51)的常用库函数

C51的常用库函数详解 C51语言的编译器中包含有丰富的库函数,使用库函数可以大大简化用户程序设计的工作量,提高编程效率。每个库函数都在相应的头文件中给出了函数原型声明,在使用时,必须在源程序的开始处使用预处理命令#include将有关的头文件包含进来。 C51库函数中类型的选择考虑到了8051单片机的结构特性,用户在自己的应用程序中应尽可能地使用最小的数据类型,以最大限度地发挥8051单片机的性能,同时可减少应用程序的代码长度。下面将C51的库函数分类列出并详细介绍其用法。 1 字符函数 字符函数的原型声明包含在头文件CTYPE.H中。常用的一些字符函数介绍如下。1.1 检查英文字母函数 检查英文字母函数用于检查形参字符是否为英文字母,其函数原型如下: bit isalpha(char c); 其中,c为待判断的字符,如果是英文字母则返回1,否则返回0。程序示例如下: 1.2 检查字母数字函数 检查字母数字函数用于检查形参字符是否为英文字母或数字字符,其函数原型如下:bit isalnum(char c);

1.3 检查控制字符函数 检查控制字符函数用于检查形参字符是否为控制字符,其函数原型:bit iscntrl (char c);其中,c为待判断的字符。控制字符其取值范围为0x00~0xlF之间或等于0x7F,如果 是,则返回1,否则返回0。

1.4 十进制数字检查函数 十进制数字检查函数用于检查形参字符是否为十进制数字,其函数原型如下: bit isdigit (char c); 其中,c为待判断的字符,如果是十进制数字则返回1,否则返回0。 1.5 可打印字符检查函数 可打印字符检查函数用于检查形参字符是否为可打印字符,其函数原型如下: bit isgraph (char c); 其中,c为待判断的字符。可打印字符的取值范围为0x21~0x7C,不包含空格,如果是可打印字符则返回1,否则返回0。

c语言中常用函数大全

如对您有帮助,请购买打赏,谢谢您! (一)输入输出常用函数 1,printf (1)有符号int %[-][+][0][width][.precision][l][h] d -:左对齐 +:正数前加‘+’ 0:右对齐,acwidth.precision,按实际输出,否者左边补零 (2)无符号int %[-][#][0][width][.precision][l][h] u|o|x|X #:”%o %x/X”输出0,0x,0X .precision:同上,TC/BC包含0x/X,VC下不包含 (3)实数输出 %[-][+][#][0][width][.precision][l][L] f|e|E|g|G #:必须输出小数点 .precision:小数位数(四舍五入) (4)字符和字符串的输出 %[-][0][width] c %[-][0][width] [.precision] s .precision:S的前precision位 2,scanf %[*][width] [l][h]Type With:指定输入数据的宽度,遇空格、Tab、\n结束 *:抑制符scanf(“%2d%*2d%3d”,&num1,&num2) 输入9\n;num1==12,num2==567. 注意: (1)指定width时,读取相应width位,但按需赋值 Scanf(“%3c%3c”,&ch1,&ch2)输入a bc d efg ch1==a ch2==d (2)%c 输入单字符时“空格、转义字符”均是有效字符 (二)ascll字符/字符串/文件函数 1;字符非格式化输入函数 (1)int getchar(void) 接受字符,以回车结束,回显 (2)int getc(FILE*stream) 从stream中接受字符,以回车结束,回显stream=stdin时,(1)==(2) (3)int getche(void) 直接读取字符,回显conio.h (4)int getchar(void) 直接读取字符,不回显conio.h

C语言常用数学函数及其用法

三角函数:(所有参数必须为弧度) 1.acos 函数申明:acos (double x); 用途:用来返回给定的X 的反余弦 函数。 2.asin 函数申明:asin (double x); 用途:用来返回给定的X 的反正弦 函数。 3.atan 函数申明:atan (double x); 用途:用来返回给定的X 的反正切 函数。 4.sin 函数声明:sin (double x); 用途:用来返回给定的X 的正弦值。 5.cos 函数声明:cos (double x); 用途:用来返回给定的X 的余弦值。 6.tan 函数声明:tan (double x); 用途:用来返回给定的X 的正切值。 7.atan2 函数声明:atan2 (double y, double x); 用途:返回给定的X 及Y 坐标值的反正切值其他函数: 8.atof 函数名: atof (const char *s); 功能: 把字符串转换成浮点数 用法: double atof(const char *nptr); 程序例: #i nclude #i nclude int main(void) { float arg,*point=&arg; float f; char *str = "12345.67"; f = atof(str); printf("string = %s float = %f\n", str, f); return 0; } 9. ceil 和 floor 函数名: ceil floor 功能: 向上舍入 向下舍入 用法: double ceil(double x); double floor(double x); 程序例: #i nclude int main(void) { double number = 123.54; double down, up;

C语言常用函数及用法

C语言常用数学函数及其用法三角函数:(所有参数必须为弧度) 1.acos 函数申明:acos (double x); 用途:用来返回给定的X 的反余弦函数。 2.asin 函数申明:asin (double x); 用途:用来返回给定的X 的反正弦函数。 3.atan 函数申明:atan (double x); 用途:用来返回给定的X 的反正切函数。 4.sin 函数声明:sin (double x); 用途:用来返回给定的X 的正弦值。 5.cos 函数声明:cos (double x); 用途:用来返回给定的X 的余弦值。 6.tan 函数声明:tan (double x); 用途:用来返回给定的X 的正切值。 7.atan2 函数声明:atan2 (double y, double x); 用途:返回给定的X 及Y 坐标值的反正切值 其他函数:

8.atof 函数名: atof (const char *s); 功能: 把字符串转换成浮点数 用法: double atof(const char *nptr); 程序例: #i nclude #i nclude int main(void) { float arg,*point=&arg; float f; char *str = "12345.67"; f = atof(str); printf("string = %s float = %f\n", str, f); return 0; } 9. ceil 和floor 函数名: ceil floor 功能: 向上舍入 向下舍入 用法: double ceil(double x); double floor(double x); 程序例: #i nclude int main(void) { double number = 123.54; double down, up; down = floor(number); up = ceil(number); printf("original number %5.2lf\n", number); printf("number rounded down %5.2lf\n", down); printf("number rounded up %5.2lf\n", up); return 0; }该程序运行结果:original number 123.54 number rounded down 123.00

相关主题
文本预览
相关文档 最新文档