王朝网络
分享
 
 
 

C语言的常用库函数使用方法分析及用途

王朝c/c++·作者佚名  2008-06-01
宽屏版  字体: |||超大  

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

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

atof()将字符串转换成浮点数的函数

原形:double atof(const char *s)

功能:把s所指向的字符串转换成double类型。

s格式为:符号数字.数字E符号数字

返回值:字符串的转换值。

头文件:math.h、stdlib.h

atoi()将字符串转换成整型数的函数

原形:int atoi(const char *s)

功能:把s所指向的字符串转换成int类型。

s格式为:符号数字

返回值:字符串的转换值。若出错则返回0。

头文件:stdlib.h

atol()将字符串转换成长整型数的函数

原形:long atol(const char *s)

功能:把s所指向的字符串转换成long int类型。

s格式为:符号数字

返回值:字符串的转换值。若出错则返回0。

头文件:stdlib.h

bcd()把一个数转换成对应的BCD码的函数

原形:bcd bcd(int x)

bcd bcd(double x)

bcd bcd(double x,int decimals)

注重:BCD码的精度可达17位。参数decimals是可选的,用来指定转换后小数点后的位数。

头文件:bcd.h

bdos()

原形∶int bdos(int fnum,unsigned dx,unsigned al)

其中fnum是系统调用号;dx是传给寄存器DX的值;al是传给寄存器AL的值;

功能∶DOS系统调用(INT21H)

返回值∶AX中的值

biosdisk()调用BIOS磁盘驱动程序函数

原形:char biosdisk(int cmd,int drive,int head,int track,int sector,int nsects,void *buffer)

功能:使用中断0x13,直接调用BIOS进行磁盘操作

参数:(1)cmd:

2-数据以每扇区512字节的格式读入buffer,起始扇区由head、track和sector定,扇区数由nsects定。

3-将buffer中的数据按每扇区512字节写入磁盘。

4-对扇区进行数据校验。

6-格式化一个磁盘并对化扇区设置化标志。

8-返回当前驱动器参数在buffer的前4个字节中。

10-长读,每扇区读入512字节加上额外的4个字节。

11-长写,每扇区写入512字节加上额外的4个字节。

(2)drive:0-第一个软驱;1-第二个软驱;0x80-第一个硬驱

(3)head:磁头

(4)track:磁道

(5)sector:扇区

(6)nsects:扇区数

(7)buffer:数据缓冲区,定义为unsigned char buffer[];

返回值:0x00-操作成功

0x01-错误命令

0x03-企图写具有写保护的磁盘

0x07-驱动器参数设置错误

0x10-磁盘读/CRC/ECC错误

头文件:bios.h

注:对于硬盘主引导记录扇区head=0,track=0,sector=1

更多内容请看C/C++进阶技术文档专题,或

biosprint()调用BIOS打印机I/O接口的函数

原形:int biosprint(int cmd,int abyte,int port)

功能:通过BIOS中断0x17在由参数port指定的打印机上完成各种打印机功能。

port=0(LPT1)

=1(LPT2);

cmd=0(打印字符abyte)

1(初始化打印机端口)

2(读打印机状态);

abyte=0-255;

返回值:打印机状态

位0(设备超时);位3(I/O出错);位4(打印机已选择);位5(没纸);位6(打印机确认);位7(不忙)

头文件:bios.h

calloc()分配内存函数

原形:void *calloc(size_t nitems,size_t size)

功能:在堆中分配一块内存,将该内存的内容全部清0。

返回值:返回指向新分配内存的指针。空间不够则返回NULL。

头文件:stdlib.h、calloc.h

ceil()

原形∶double ceil(double num)

功能∶求不小于num的最小双精度整数

头文件∶math.h

cgets()读字符串函数

原形:char *cgets(char *str)

功能:从控制台读入一个字符串,并将该字符串(和字符串长度)存入有str所指向的地址中。

注重:在调用cgets之前,必须将要读入的字符串最大长度存入str[0]中,返回时str[1]被设置为实际读入的字符数。实际字符串内容从str[2]开始,以空字符(\0)结尾。

返回值:指向str[2]的指针。

头文件:conio.h

chdir()改变当前目录的函数

原形:int chdir(const char *path)

功能:把由path指定的目录改为当前目录。path参数中可以指定驱动器号,如“a:\\ddd”, 但只是改变该驱动器上的当前目录,对当前活动驱动器上的当前目录无影响。

返回值:0(成功);-1(失败)

头文件:dir.h

_chmod()改变文件存取权限的函数

原形:int _chmod(const char *path,int func[,int attrib])

功能:读取(func=0时)或设置(func=1时)DOS文件属性。

attrib=FA_RDONLY 只读

attrib=FA_HIDDEN 隐藏文件

attrib=FA_SYSTEM 系统文件

attrib=FA_LABLE 卷标

attrib=FA_DIREC 目录

attrib=FA_ARCH 档案

返回值:失败时返回-1。成功时返回文件的属性字节,假如 返回值&FA_RDONLY 不等于0,则文件是只读文件;......

头文件:io.h、dos.h

chmod()改变文件存取权限的函数

原形:int chmod(const char *path,int amode)

功能:根据amode的值,设置由path所指文件的存取权限。

amode的值存取权限

S_IWRITE 答应写

S_IREAD答应读(只读)

S_IREADS_IWRITE 可读可写

返回值:0(成功);-1(失败)

头文件:io.h、sys\stat.h

clock()

原形∶long clock(void)

功能∶测得从程序开始到调用处处理机所用的时间

头文件∶time.h

更多内容请看C/C++进阶技术文档专题,或

close()关闭文件函数

原形:int close(int handle)

功能:关闭由文件句柄所指向的文件,句柄是调用_creat、creat、creatnew、creattemp、dup、dup2、_open或open时得到的。该函数并不在文件末尾写一个Ctrl-Z字符,假如想用该字符结束文件,必须显式地给出该字符。

返回值:0(成功);-1(失败)

头文件:io.h

closegraph()关闭图形函数

原形:void far closegraph(void)

功能:释放图形系统分配的所有内存,将屏幕恢复到调用initgraph之前的模式。

头文件:graphics.h

cos()

原形∶double cos(double arg)

功能∶计算arg(弧度)的余弦值

头文件∶math.h

ctrlbrk()设置ctrl-break处理程序的函数

原形:void ctrlbrk(int(*handle)(void))

功能:修改中断向量0x23,使用新的ctrl-break中断处理函数。

用法:ctrlbrk(函数名);

先定义函数:int 函数名(void){...}

头文件:dos.h

delay()暂停函数

原形:void delay(unsigned milliseconds)

功能:暂停当前所执行的程序milliseconds毫秒。

头文件:dos.h

disable()屏蔽中断的宏

原形:void disble(void)

功能:屏蔽中断,只答应从外部设备来的不可屏蔽中断(NMI)。

头文件:dos.h

enable()开硬件中断的宏

原形:void enable(void)

功能:开放中断,答应接受任何设备产生的中断。

头文件:dos.h

exec()加载并运行其它程序的函数族

execl(),execle(),execlp(),execlpe(),

execv(),execve(),execvp(),execvpe()

原形∶ int execl(char *path,char *arg0,*arg1,...,*argn,NULL)

int execle(char *path,char *arg0,*arg1,...,*argn,NULL,char **env)

int execlp(char *path,char *arg0,*arg1,...,*argn,NULL)

int execlpe(char *path,char *arg0,*arg1,...,*argn,NULL,char **env)

int execv(char *path,char *argv[])

int execve(char *path,char *argv[],char **env)

int execvp(char *path,char *argv[])

int execvpe(char *path,char *argv[],char **env)

其中,path是调用的子程序的文件名,在exec后面的后缀具有某种功能:

p表示函数能够在由DOS环境变量PATH的目录中搜索子进程文件,假如path中未指明文件所在目录,函数将首先在当前目录中找,然后在DOS环境变量指定的目录中找。

l表示参数指针(arg0,...,argn)按单独参数传送。当预先知道要传送的参数个数时,通常用带后缀l的函数。

v表示参数指针(arg0,...,argn)按指针数组传送。当要传送的参数可变时,使用带后缀v的函数。

e表示参数env可以传送到子进程,该函数可用来修改子进程的环境。若无e后缀,子进程将继续父进程的环境。

注重:arg0+...+argn,或arg[0]+...+arg[n]的总长度必需小于128字节。当调用exec函数时,原先已经打开的文件在子进程中仍然是打开的。

功能:加载并运行其它程序,调用时必须有足够的内存空间用于加载和执行子程序,子程序将覆盖父程序。

头文件:process.h

更多内容请看C/C++进阶技术文档专题,或

farcalloc()从远堆中分配内存的函数

原形:void far *farcalloc(unsigned long nunits,unsigned long unitsz)

功能:从远堆中为包含nunits个元素的数组分配内存,每一区unitsz字节长。

用法:fptr=farcalloc(数目,sizeof(char));

先定义:char far *fptr;

注重:所有可用RAM能被分配;大于64K的块能被分配;用远指针存取该块。微模式不能用。

返回值:返回指向新分配块的指针,若内存不够,则返回NULL。

头文件:alloc.h

farfree()从远堆中释放一块已分配内存的函数

原形:void farfree(void far *block)

头文件:alloc.h

farmalloc()从远堆中分配内存的函数

原形:void far *farmalloc(unsigned long nbytes)

使用方式:fptr=farmalloc(字节数);

先定义char far *fptr;

功能:从远堆中分配长nbytes字节的内存。

注重:所有可用RAM能被分配;大于64K的块能被分配;用远指针存取该块。微模式不能用。

返回值:返回指向新分配内存的指针,若内存不够,则返回NULL。

头文件:alloc.h

farrealloc()调整远堆中已分配块的函数

原形:void far *farrealloc(void far *oldblock,unsigned long nbytes)

返回值:返回调整后的新内存地址。若不能重新分配,则返回NULL。

头文件:alloc.h

fclose()关闭一个流函数

原形:int fclose(FILE *stream)

使用方式:fclose(文件指针名);其中文件指针名=fopen();

功能:关闭指定的流,关闭前清除所有与stream相联的缓冲区,释放系统分配的缓冲区,但由setbuf设置的缓冲区不能自动释放。

返回值:0(成功);EOF(失败)

头文件:stdio.h

fcloseall()关闭打开的流的函数

原形:int fcloseall(void)

功能:关闭所有打开的流,由stdin、stdout、stdprn、stderr和stdaux设置的流除外。

返回值:关闭流的总数。假如发现错误则返回EOF。

头文件:stdio.h

feof()检查文件是否结束的函数

原形∶int feof(FILE *fp)

返回值∶文件结束返回非0值,否则返回0。

头文件∶stdio.h

fgets()从流中读取一字符串的函数

原形:char *fgets(char s[],int n,FILE *stream)

使用格式:fgets(字符串指针,字符个数,文件指针)

功能:从输入流stream中读入字符存到s串中。当读了n-1个字符或碰到换行符时,函数停止读过程。fgets在s串尾保留换行字符。读入的最后一个字符后面加一个空字符。

返回值:成功时返回字符串参数s,出错或碰到文件结束时,返回NULL。

头文件:stdio.h

findfirst()函数和findnext()函数

调用方式:整形数=findfirst(文件名,&结构变量名,属性常数组合(如0x26));其中定义strUCt ffblk 结构变量名;

原形:int findfirst(path,buffer,attr)和int findnext(buffer)

char *path;//要检索的文件名

struct ffblk

{

char ff_reserved[21];

char ff_attrib;//被检索的文件属性

unsigned ff_ftime;//最后修改的时间

//(0-4位:秒数/2;5-10位:分数;11-15位:小时数)

unsigned ff_fdate;//最后修改的日期

//(0-4位:日;5-8位:月;9-15位:年减1980)

long ff_fsize;//文件大小

char ff_name[13];//组名

}*buffer;

int attr;//要检索的文件属性

功能:检索由path和attr指定的文件,把结果返回到buffer。findfirst返回关于第一个指定文件的信息,findnext继续检索。

返回值:0(检索成功),-1(没有找到指定的文件)

属性常数:

FA_NORMAL(0x00)含意:Normal file, no attributes

FA_RDONLY(0x01)含意:只读

FA_HIDDEN(0x02)含意:隐含文件

FA_SYSTEM(0x04)含意:系统文件

FA_LABEL(0x08) 含意:卷标

FA_DIREC(0x10) 含意:子目录

FA_ARCH(0x20)含意:修改的文件Archive

头文件:dir.h(dos.h)

更多内容请看C/C++进阶技术文档专题,或

floodfill()填充区域的函数

原形:void far floodfill(int x,int y,int border)

功能:在图形设备上用颜色border围起来的区域将用当前填充颜色填充。(x,y)是待填充区域的起点,若起点在封闭区域内,则区域内被填充;若起点在封闭区域外,则区域外被填充。

头文件:graphics.h

floor()

原形∶double floor(double num)

功能∶求不大于num的最大双精度整数

头文件∶math.h

fnmerge()建立文件路径函数

原形:void fnmerge(char *path,const char *drive,const char *dir, const char *name,const char *ext)

功能:合成drive:\dir\name.ext,放在path

头文件:dir.h

fnsplit()分解完整的路径名函数

原形:int fnsplit(char *path,const char *drive,const char *dir,const char *name,const char *ext)

功能:把文件名路径path分成4个部分存放。

其中drive中有冒号;dir中有开始和结尾的反斜杠;ext包括开始圆点

返回值:假如有扩展名,则返回值&EXTENSION!=0

假如有文件名,则返回值&FILENAME!=0

假如有目录名,则返回值&DirectorY!=0

假如有驱动器号,则返回值&DIRVE!=0

头文件:dir.h

fopen()打开一个流函数

原形:FILE *fopen(const char *filename,const char *mode)

功能:打开用filename指定的文件,并使其与一个流相联。

使用方式:文件指针名=fopen("文件名","处理方式")

"处理方式"取:

"rt"打开一个文本文件,只能读。

"wt"生成一个文本文件,只能写。若文件存在则被重写。

"at"打开一个文本文件,只能在文件尾部添加。

"rb"打开一个二进制文件,只能读。

"wb"生成一个二进制文件,只能写。

"ab"打开一个二进制文件,只能在文件尾部添加。

"rt+" 打开一个文本文件,可读可写。

"wt+" 生成一个文本文件,可读可写。

"at+" 打开一个文本文件,可读可添加。

"rb+" 打开一个二进制文件,可读可写。

"wb+" 生成一个二进制文件,可读可写。

"ab+" 打开一个二进制文件,可读可添加。

返回值:指明流的指针(成功时)或NULL(失败时)

注:需先定义 FILE *文件指针名;

"文件名"若用 argv[1]代替,则可使用命令行形式指定文件名

FP_OFF()获取远地址偏移量的宏

原形:unsigned FP_OFF(void far *p)

功能:取得和设置远指针*p的偏移量

返回值:偏移量

头文件:dos.h

fprintf()传送输出到一个流中的函数

原形:int fprintf(FILE *stream,const char *format[,argument,...])

功能:①向文件指针指向的文件输出ASCⅡ代码

②向显示器输出错误信息

使用形式:

①fprintf(文件指针,"输出格式",输出项系列);

②fprintf(stderr,"错误信息");

使用实例:fprintf(stream,"%d %c %f",i,c,f);

其中定义FILE *stream;

int i;char c;float f;

返回值:成功则返回输出的字节数,错误则返回EOF。

头文件:stdio.h

更多内容请看C/C++进阶技术文档专题,或

FP_SEG()获取远地址段值的宏

原形:unsigned FP_SEG(void far *p)

功能:取得和设置远指针*p段地址值

返回值:段地址值

头文件:dos.h

free()释放已分配内存的函数

原形:void free(void *block)

功能:释放由calloc、malloc、realloc函数调用所分配的内存。

头文件:stdlib.h、alloc.h

fscanf()格式化输入函数

原形:int fscanf(FILE *stream,const char *format[,address,...])

功能:从一个流中扫描输入字段,一次扫描一个字符,每个输入字段根据format所指格式指示符格式化后,把输入字段存在format后面由地址参数给出的位置上。

使用格式:fscanf(文件指针,"输入格式",输入项系列);

使用实例:fscanf(fp,"%d",&b);

从fp指向的文件中读取十进制整数 (ASCⅡ形式)赋予变量b

注:当文件指针是stdin时,与scanf功能完全相同

头文件:stdio.h

fseek()移动文件指针函数

原形:int fseek(FILE *stream,long offset,int whence)

作用:强制一个文件的位置指针指向某个特定的位置(甚至超出文件的尾部)。

使用格式:fseek(*文件指针,偏移(长整型),起点)

定义 FILE *文件指针名;

"起点"取值:

0或SEEK_SET(表示文件开头)

1或SEEK_CUR(表示当前位置)

2或SEEK_END(表示文件尾端)

返回值:0表示成功,非0值表示失败

头文件:stdio.h

fwrite()把参数写入流中的函数

原形:size_t fwrite(const void *ptr,size_t size,size_t n,FILE *stream)

功能:附加n个数据项(每个数据项长度为size个字节)到指定的输出文件后,数据从ptr处开始添加。ptr是指向任意对象的指针。

返回值:调用成功时返回实际写的数据项数,出错时返回一短整形数值。

头文件:stdio.h

例:fwrite(&s,sizeof(s),1,stream);

其中s是一结构变量,stream=fopen();

gcvt()把双精度数转化成字符串的函数

原形∶char*gcvt(value,ndigit,buf)

其中∶double value是待转化数

int ndigit是转化长度

char *buf保存转化后的地址

头文件∶stdlib.h

geninterrupt()执行中断函数

原形:void geninterrupt(int n)

调用方式:geninterrupt(软中断号)

功能:产生一个8086软中断

注:需先向寄存器传递入口信息(用伪变量)

例如伪变量=要赋的值(入口信息);

调用geninterrupt()函数后得接受出口信息

例如变量名=伪变量

伪变量∶Turbo C 答应使用伪变量直接访问相应的8086寄存器。伪变量的类型有两种。

① unsigned int : _AX、 _BX、 _CX、 _DX、 _CS、 _DS、 _SS、 _ES、_SP、 _BP、 _DI、 _SI

② unsigned char: _AL、 _AH、 _BL、 _BH、 _CL、 _CH、 _DL、 _DH

更多内容请看C/C++进阶技术文档专题,或

getc()从流中取字符的宏

原形:int getc(FILE *stream)

功能:返回输入流stream中一个字符,移动文件指针使之指向下一个字符。

使用格式:字符变量=getc(文件指针)

(正常情况下读取到代码值,读到文件尾或出错时返回EOF)

注:需定义 char 字符变量;FILE *文件指针;

头文件:stdio.h

getch()从键盘无回显地读取一字符的函数

功能:将键盘上输入的单个字符的值(ASCⅡ 码)马上赋给字符型变量

调用方式:字符形变量=getch()

注:需先定义 char 字符形变量;

头文件:conio.h

getchar()从stdin流中读取一个字符的函数

功能:将键盘上输入的单个字符的值(ASCⅡ 码)回车后赋给字符型变量

调用方式:字符型变量=getchar()

注:需先定义 char 字符型变量;

头文件:stdio.h

getcurdir()读取指定驱动器的当前目录的函数

原形:int getcurdir(int drive,char directory)

drive=0(缺省);1(A驱动器);...

directory用来存放目录名,不包括驱动器名,不以反斜杠开始。

返回值:0(调用成功);1(出错)

头文件:dir.h

getcwd()读取当前目录的函数

原形:char *getcwd(char *buf,int buflen)

功能:读取当前目录的完整路径名(包括驱动器名),最长为buflen个字节,存放在buf中。假如buf为NULL,函数将分配一个buflen字节长的缓冲区,以后可将本函数的返回值作为free函数的参数来释放该缓冲区。

返回值:若buf非空,调用成功返回buf,出错返回NULL;若buf为NULL,返回指向已经分配的内存缓冲区地址。

头文件:dir.h

getdate()读取系统日期函数

原形:void getdate(pdate)

struct date

{

int da_year;

int da_day;

int da_mon;

};

struct date *pdate;

头文件:dos.h

getdfree()读取磁盘空闲空间的函数

原形:void getdfree(drive,dtable)

unsigned char drive;驱动器号(0-当前;1-A;2-B;...)

struct dfree

{

unsigned df_avail;//可使用的簇数

unsigned df_total;//每个驱动器的簇数

unsigned df_bsec;//每个扇区的字节数

unsigned df_sclus;//每个簇的扇区数(出错时返回0xffff)

}*dtable;

功能:把由drive指定的关于驱动器的信息返回到dtable

getdisk()读取当前磁盘驱动器号函数

原形:int getdisk(void)

功能:取得当前驱动器号(0=A;1=B;....)

头文件:dir.h

更多内容请看C/C++进阶技术文档专题,或

getenv()读取环境变量的当前值的函数

原形:char *getenv(const char *name)

用法:s=getenv("环境变量名");

需先定义char *s;

功能:返回一给定的环境变量值,环境变量名可大写或小写。假如指定的变量在环境中未定义,则返回一空串。

头文件:stdlib.h

getimage()将指定区域的位图象存入内存的函数

原形:void far getimage(int left,int top,int right,int bottom,void far *bitmap)

功能:将图像(矩形区域)从屏幕拷贝到内存,*bitmap指向内存中存放图像的区域。该区域的前两个字节用于存放矩形的高和宽。

头文件:graphics.h

getmaxx()返回屏幕上最大的X坐标值的函数

原形:int far getmaxx(void)

功能:返回当前图形驱动程序和图形模式下最大的X坐标值。

头文件:graphics.h

getmaxy()返回屏幕上最大的Y坐标值的函数

原形:int far getmaxy(void)

功能:返回当前图形驱动程序和图形模式下最大的Y坐标值。

头文件:graphics.h

getpixel()读取像素颜色的函数

原形:unsigned far getpixel(int x,int y)

头文件:graphics.h

getpsp()

原形∶unsigned getpsp(void)

功能∶使用DOS系统调用0x62,返回程序段前缀(PSP)的段地址

头文件∶dos.h

gets()从标准输入流stdio中读取一字符串的函数

功能:将键盘上输入的字符串马上赋予字符串变量并显示出来

调用方式:gets(字符串变量名)

注:需定义 char *字符串变量名;

gettime()读取系统时间的函数

原形:void gettime(ptime)

struct time

{

unsigned char ti_min;

unsigned char ti_hour;

unsigned char ti_hund;//百分之一秒

unsigned char ti_sec;

};

struct time *ptime;

getvect()读取中断向量函数

原形:void interrupt(*getvect(int interruptno))

功能:读入由interruptno(0-255之间)所指定的中断向量值,并把该中断向量值作为中断函数的远指针返回。

返回值:指定中断向量的当前4字节值。

头文件:dos.h

使用实例:oldfunc=getvect(5);

先定义void interrupt(*oldfunc)();

用后恢复setvect(5,oldfunc);

getx()返回当前图形方式下位置的X坐标值的函数

原形:int far getx(void);

头文件:graphics.h

gety()返回当前图形方式下位置的Y坐标值的函数

原形:int far gety(void);

头文件:graphics.h

imagesize()返回保存图像缓冲区大小的函数

原形:unsigned far imagesize(int left,int top,int right,int bottom)

功能:确定保存图像所需的存储区大小。

返回值:返回存储区的大小(字节),若所需内存大于等于64K-1字节,则返回0xffff(-1)。

头文件:graphics.h

更多内容请看C/C++进阶技术文档专题,或

initgraph()显示模式控制函数(初始化图形系统函数)

功能:把图形适配器设置为一种图形模式,将选择的图形驱动程序(在BGI文件中)装入到内存。

调用方式:

void far initgraph(int far *driver,int far *mode,char far*path)

其中: *driver可以是数值(0-10),也可是符号值(DETECT、CGA、MCGA、EGA、EGA64、EGAMONO、RESERVED、HERCMONO、ATT400、VGA、 PC3270)。

*mode参数从图形系统为各种常用的图形适配器设置的图形模式中(CGAC0、…、IBM8514HI--见头文件graphics.h)选取。常用的有:VGAMED或1(640×350)(等效于BIOS的模式15)、EGAHI或1(640×350)等。

path指向的字符串为装入驱动程序的路径。假如缺省路径,驱动程序在当前目录。

结束方法:

①void far closegraph()函数用于当程序还要继续在字符模下运行时。它释放由图形函数所占用的内存,同时把屏幕模式恢复为调用initgraph()之前的模式。

②void far restorecrtmode()函数用于结束运行。将图形适配器设置到原来的模式。任何分配的内存都将自动释放。

头文件:graphics.h

inport()从端口中读入一个字的函数

原形:int inport(int portid)

调用方式:整型变量=inport(0x端口号);

功能:从指定端口地址读一个字。

头文件:dos.h

inportb()从端口读入一个字节的函数

原形:unsigned char inportb(int portid)

调用方式:字符变量=inportb(0x端口号);

功能:从指定端口地址读一个字节。

头文件:dos.h

int86()执行中断函数(调用8086软中断函数)

原形:int int86(int intno,union REGS *inregs,union REGS *outregs)

调用方式:int86(中断号,&输入指针名,&输出指针名)

返回值:中断处理结束时的AX寄存器的值,错误时outregs->x.cflag!=0

功能:函数int86() 用来执行指定的8086软中断。首先把输入指针所指的共用体中的内容拷贝到CPU 的寄存器中,随即产生对应的中断,返回后将CPU寄存器(AX)的内容拷贝到输出指针指向的共用体中。在使用int86() 函数进行BIOS接口的系统调用时,有的中断调用设有若干选择项,这些选择项可以根据调用时AH寄存器中的值来进行访问。

注:1.需先定义 union REGS 输入指针名,输出指针名;

2.向寄存器传递入口信息

输入指针名.x.寄存器名=要赋的值(入口信息);

3.调用int86后得接受出口信息

变量名=输出指针名.x.寄存器名

4.REGS的定义(在dos.h中):

struct WordREGS{unsigned int ax, bx, cx, dx, si, di, cflag, flags;}

struct BYTEREGS{unsigned char al, ah, bl, bh, cl, ch, dl, dh;}

union REGS{struct WORDREGS x;struct BYTEREGS h;}

头文件:dos.h

int86x()执行中断函数 (通用8086软中断接口函数)

头文件:dos.h

原形:int int86x(int intno,union REGS *inregs,union REGS *outregs,struct SREGS * segregs)

调用方式:int86x(中断号,&输入指针名,&输出指针名,&段寄存器指针名);

注1:需先定义 union REGS 输入指针名,输出指针名;

union REGS 示意图

structstruct

WORDREGSBYTEREGS

┌ ┌───────┬──────┐──┬── ┐

│ ││ al │ 1 byte│

│ │ax├──────┤──┴─ 2 bytes

│ ││ ah │ │

│ ├───────┼──────┤───── ┘

│ ││ bl │

│ │bx├──────┤

│ ││ bh │

│ ├───────┼──────┤

│ ││ cl │

│ │cx├──────┤

│ ││ ch │

│ ├───────┼──────┤

│ ││ dl │

│ │dx├──────┤

│ ││ dh │

union regs├───────┼──────┤

│ │││

│ │si││

│ │││

│ ├───────┤│

│ │││

│ │di││

│ │││

│ ├───────┤│

│ │││

│ │cflag ││

│ │││

│ ├───────┤│

│ │││

│ │flags ││

│ │││

└ └───────┴──────┘

│x两个结构变量h│

└──共享同一存储域──┘

其中字段flags对应于标志寄存器。字段cflag仅对应于进位标志位,函数在调用时不用该字段,只在返回时设置这个字段,因为许多BIOS服务都是通过进位标置为0还是1来表示成功还是失败。

注2:需先定义 struct SREGS 段寄存器指针名;

结构SREGS定义如下

struct SREGS {unsigned int es,cs,ss,ds}

函数只用了该结构中的段寄存器DS和ES。调用时根据它们的值设置DS和ES,同时把DS和ES原来的值保存在这个结构中,返回时再恢复DS和ES为原来的值,这就答应程序使用远指针或大数据编译模式。

该函数置全局变量_doserrno等于寄存器AX中的值,其返回值也等于AX中的值。

注3:向寄存器传递入口信息

输入指针名.x.寄存器名=要赋的值(入口信息);

注4:调用int86x后得接受出口信息

变量名=输出指针名.x.寄存器名

intdos()通用dos中断接口函数

原形:int intdos(inregs,outregs)

union REGS *inregs;//调用时的各寄存器的值

union REGS *outregs;//返回寄存器的值

功能:产生DOS软中断

注重:假如需要功能号,则装入AH;假如需要子功能号,则装入AL。

头文件:dos.h

更多内容请看C/C++进阶技术文档专题,或

intdosx()通用dos中断接口函数

原形:int intdosx(inregs,outregs,segregs)

union REGS *inregs;调用时的各寄存器的值

union REGS *outregs;返回寄存器的值

struct SREGS *seregs;调用时的段寄存器的值(还设置返回时的值)

功能:产生DOS软中断

头文件:dos.h

intr()执行8086软中断函数(改变软中断接口函数)

原形:void intr(int intno,struct REGPACK *preg)

调用方式:intr(中断号,&结构变量名)

注1:结构REGPACK定义如下

struct REGPACK

{

unsigned r_ax,r_bx,r_cx,r_dx;

unsigned r_bp,r_si,r_di,r_ds,r_es,r_flag;}

注2:使用时先定义一个结构变量

struct REGPACK 结构变量名;

注3:入口和出口用同一个结构变量来传递寄存器的值。

结构变量名.r_ax=要赋的值;

......

intr(中断号,&结构变量名);

某变量=结构变量名.r_ax;

头文件:dos.h

itoa()把整形数转换为字符串的函数

原形:char *itoa(int value,char *string,int radix)

功能:把value的值转换为以NULL结束的字符串,并把结果存在string中。radix是转换的基数值,在2到36之间。分配给string的空间必须可容纳返回的所有字节(最多17字节)。

返回值:指向string的指针

头文件:stdlib.h

kbhit()检查当前按下的键的函数

原形:int kbhit(void)

功能:检查按下的键是否有效,若有效则可用getch()或getche()读取。

返回值:假如按键有效,返回一非零值,否则返回0。

头文件:conio.h

keep()驻留并退出函数

原形:void keep(unsigned char status,unsigned size)

功能:用于安装一个TSR程序(使用DOS功能调用0x31)。出口状态设置为在status中的值,程序占用存储空间为size,并释放内存的其余部分。

头文件:dos.h

log()

原形∶double log(double num)

功能∶求num的自然对数值

头文件∶math.h

log10()

原形∶double log10(double num)

功能∶求num以10为底的对数值

头文件∶math.h

_lrotl()将一个无符号长整形数左循环移位的函数

原形:unsigned long _lrotl(unsigned long value,int count)

功能:将value向左循环移动count位。

返回值:将value向左循环移动count位后的值。

头文件:stdlib.h

更多内容请看C/C++进阶技术文档专题,或

_lrotr()将一个无符号长整形数右循环移位的函数

原形:unsigned long _lrotr(unsigned long value,int count)

功能:将value向右循环移动count位。

返回值:将value向右循环移动count位后的值。

头文件:stdlib.h

lseek()移动文件指针函数

原形:long lseek(int handle,long offset,int fromwhere)

handle=open()函数的返回值(文件句柄);

fromwhere=文件位置

(SEEK_SET(0)从文件头位置;SEEK_CUR(1)从当前文件指针位置;SEEK_END(2)从文件结尾位置)

功能:把文件指针移动到fromwhere所指的地址加上offset新位置的偏移上。

头文件:io.h

返回值:指针新位置的偏移量(相对于文件开始处),出错时返回-1L。

ltoa()把长整形数转换为字符串的函数

原形:char *ltoa(long value,char *string,int radix)

功能:把value的值转换为以NULL结束的字符串,并把结果存在string中。radix是转换的基数值,在2到36之间。分配给string的空间必须可容纳返回的所有字节(最多33字节)。

返回值:指向string的指针

头文件:stdlib.h

malloc()分配内存函数

原形:void *malloc(size_t size)

功能:从堆中分配大小为size字节的块。win32也适用。

返回值:返回新分配内存的地址,若无足够内存,返回NULL。

头文件:alloc.h、stdlib.h

mkdir()创建目录函数

原形:int mkdir(const char *path)

功能:按给定的路径建立一个新的目录

头文件:dir.h

返回值:0(成功);-1(失败)

mktemp()建立一个唯一的文件名的函数

原形:char *mktemp(char *template)

功能:使用一个唯一的文件名来替换字符串template,并返回template。

头文件:dir.h

MK_FP()设置一个远指针的宏

原形:void far *MK_FP(unsigned seg,unsigned ofs)

功能:通过段值(seg)和偏移量(ofs)建立一个远指针

返回值:远指针

头文件:dos.h

movedata()拷贝数据函数

原形:void movedata(unsigned srcseg,unsigned srcoff,unsigned dstseg,unsigned dstoff,size_t n)

功能:从原地址(srcseg:srcoff)拷贝n个字节的数据到目标地址(dstseg:dstoff)。

头文件:mem.h、string.h

_open()打开一个文件进行读写的函数

原形:int _open(path,oflags)

char *path;//已建立文件的路径名

int oflags;//方式

功能:打开由path指定的文件,返回文件的句柄

返回值:0(正常结束);-1(错误)

头文件:fcntl.h、io.h

open()打开文件进行读写的函数

原形:int open(const char *path,int Access[,unsigned mode])

使用方法:文件句柄=open("文件名",打开模式打开模式);

功能:打开path指定的文件,根据access指定的模式值读写。

access模式:

O_RDONLY以只读方式打开

O_WRONLY以只写方式打开

O_RDOWR 以读写方式打开

以上标志只能使用一个,以下可以用组合使用

O_NDELAY

O_APPEND若置位,每次写操作前都使文件指针指到文件末尾

O_CREAT 若文件不存在则创建

O_TRUNC 若文件已存在,则将文件长度截为0

O_EXCL只和O_CREAT一起使用,若文件已经存在,返回错误代码

O_BINARY以二进制方式打开

O_TEXT以文本方式打开

假如使用了O_CREAT方式,则需要提供参数mode

(S_IWRITE可写;S_IREAD可读;S_IREADS_IWRITE可读写)

返回值:文件句柄(成功时);-1(失败时)。

成功时,文件指针指向文件头。

头文件:fcntl.h、io.h

更多内容请看C/C++进阶技术文档专题,或

outport()输出一个字到端口中的函数

原形:void outport(int portid,int value)

调用方式:outport(0x端口号,要输出的字);

功能:往指定端口地址输出一个字。

头文件:dos.h

outportb()输出一个字节到端口中的函数

原形:void outportb(int portid,unsigned char value)

调用方式:outportb(0x端口号,要输出的字节);

功能:往指定端口地址输出一个字节。

附:PC I/O地址分配

PC只用了10位地址线(A0-A9)进行译码,其寻址的范围为0H-3FFH,共有1024个I/O地址。这1024个地址中前半段(A9=0,范围为0H-1FFH)是属于主机板I/O译码,后半段(A9=1,范围为200H-3FFH)则是用来扩展插槽上的I/O译码用。

I/O端口功能表

———————————————————————————

I/O地址功能、用途

———————————————————————————

0DMA通道0,内存地址寄存器(DMA控制器1(8237))

1DMA通道0, 传输计数寄存器

2DMA通道1,内存地址寄存器

3DMA通道1, 传输计数寄存器

4DMA通道2,内存地址寄存器

5DMA通道2, 传输计数寄存器

6DMA通道3,内存地址寄存器

7DMA通道3, 传输计数寄存器

8DMA通道0-3的状态寄存器

AH DMA通道0-3的屏蔽寄存器

BH DMA通道0-3的方式寄存器

CH DMA清除字节指针

DH DMA主清除字节

EH DMA通道0-3的清屏蔽寄存器

FH DMA通道0-3的写屏蔽寄存器

19HDMA起始寄存器

20H-3FH可编程中断控制器1(8259)使用

40H可编程中断计时器(8253)使用,读/写计数器0

41H可编程中断计时器寄存器

42H可编程中断计时器杂项寄存器

43H可编程中断计时器,控制字寄存器

44H可编程中断计时器,杂项寄存器(AT)

47H可编程中断计时器,计数器0的控制字寄存器

48H-5FH可编程中断计时器使用

60H-61H键盘输入数据缓冲区

61HAT:8042键盘控制寄存器/XT:8255输出寄存器

62H8255输入寄存器

63H8255命令方式寄存器

64H8042键盘输入缓冲区/8042状态

65H-6FH8255/8042专用

70HCMOS RAM地址寄存器

71HCMOS RAM数据寄存器

80H生产测试端口

81HDMA通道2,页表地址寄存器

82HDMA通道3,页表地址寄存器

83HDMA通道1,页表地址寄存器

87HDMA通道0,页表地址寄存器

89HDMA通道6,页表地址寄存器

8AHDMA通道7,页表地址寄存器

8BHDMA通道5,页表地址寄存器

8FHDMA通道4,页表地址寄存器

93H-9FHDMA控制器专用

A0HNM1屏蔽寄存器/可编程中断控制器2

A1H可编程中断控制器2屏蔽

C0HDMA通道0,内存地址寄存器(DMA控制器2(8237))

C2HDMA通道0, 传输计数寄存器

C4HDMA通道1,内存地址寄存器

C6HDMA通道1, 传输计数寄存器

C8HDMA通道2,内存地址寄存器

CAHDMA通道2, 传输计数寄存器

CCHDMA通道3,内存地址寄存器

CEHDMA通道3, 传输计数寄存器

D0HDMA状态寄存器

D2HDMA写请求寄存器

D4HDMA屏蔽寄存器

D6HDMA方式寄存器

D8HDMA清除字节指针

DAHDMA主清

DCHDMA清屏蔽寄存器

DEHDMA写屏蔽寄存器

DFH-EFH保留

F0H-FFH协处理器使用

100H-16FH保留

170H 1号硬盘数据寄存器

171H 1号硬盘错误寄存器

172H 1号硬盘数据扇区计数

173H 1号硬盘扇区数

174H 1号硬盘柱面(低字节)

175H 1号硬盘柱面(高字节)

176H 1号硬盘驱动器/磁头寄存器

177H 1号硬盘状态寄存器

1F0H 0号硬盘数据寄存器

1F1H 0号硬盘错误寄存器

1F2H 0号硬盘数据扇区计数

1F3H 0号硬盘扇区数

1F4H 0号硬盘柱面(低字节)

1F5H 0号硬盘柱面(高字节)

1F6H 0号硬盘驱动器/磁头寄存器

1F7H 0号硬盘状态寄存器

1F9H-1FFH保留

200H-20FH游戏控制端口

210H-21FH扩展单元

278H 3号并行口,数据端口

279H 3号并行口,状态端口

27AH 3号并行口,控制端口

2B0H-2DFH保留

2E0H EGA/VGA使用

2E1H GPIP(0号适配器)

2E2H 数据获取(0号适配器)

2E3H 数据获取(1号适配器)

2E4H-2F7H保留

2F8H 2号串行口,发送/保持寄存器(RS232接口卡2)

2F9H 2号串行口,中断有效寄存器

2FAH 2号串行口,中断ID寄存器

2FBH 2号串行口,线控制寄存器

2FCH 2号串行口,调制解调控制寄存器

2FDH 2号串行口,线状态寄存器

2FEH 2号串行口,调制解调状态寄存器

2FFH 保留

300H-31FH原形卡

320H 硬盘适配器寄存器

322H 硬盘适配器控制/状态寄存器

324H 硬盘适配器提示/中断状态寄存器

325H-347H保留

348H-357HDCA3278

366H-36FHPC网络

372H 软盘适配器数据输出/状态寄存器

375H-376H软盘适配器数据寄存器

377H 软盘适配器数据输入寄存器

378H 2号并行口,数据端口

379H 2号并行口,状态端口

37AH 2号并行口,控制端口

380H-38FHSDLC及BSC通讯

390H-393HCluster适配器0

3A0H-3AFHBSC通讯

3B0H-3B HMDA视频寄存器

3BCH 1号并行口,数据端口

3BDH 1号并行口,状态端口

3BEH 1号并行口,控制端口

3C0H-3CFHEGA/VGA视频寄存器

3D0H-3D7HCGA视频寄存器

3F0H-3F7H软盘控制器寄存器

3F8H 1号串行口,发送/保持寄存器(RS232接口卡1)

3F9H 1号串行口,中断有效寄存器

3FAH 1号串行口,中断ID寄存器

3FBH 1号串行口,线控制寄存器

3FCH 1号串行口,调制解调控制寄存器

3FDH 1号串行口,线状态寄存器

3FEH 1号串行口,调制解调状态寄存器

3FFH 保留

—————————————————————————-

更多内容请看C/C++进阶技术文档专题,或

outtextxy()在指定位置显示一字符串的函数

原形:void far outtextxy(int x,int y,char far *textstring)

功能:按照当前对齐方式和当前字体、方向、大小在视区中给定位置显示一文本字符串。

注重:用textwidth和textheight函数决定字符串的尺寸大小。

头文件:graphics.h

peek()返回指定内存中字的函数

原形:int peek(int seg,unsigned offset)

功能:返回地址为seg:offset的字单元的值

头文件:dos.h

peekb()返回指定内存中字节的函数

原形:char peekb(int seg,unsigned offset)

功能:返回地址为seg:offset的字节单元的值

poke()在指定的内存中存储一个字的函数

原形:void poke(int seg,unsigned offset,int word)

功能:把word的16位值放到地址为seg:offset的字单元中

pokeb()在指定的内存中存储一个字节的函数

原形:void pokeb(int seg,unsigned offset,int byte)

功能:把byte的8位值放到地址为seg:offset的字节单元中

pow()

原形∶double pow(double b,double eXP)

功能∶求以b为底的exp次幂的值

头文件∶math.h

printf()写格式化输出到stdout的函数

使用方式:例

①printf("%f",实型变量);

②printf("%f",(*函数指针名)(参数));

③printf("%c",字符变量);

④printf("%c",*字符串变量名即字符串地址);

只显示字符串的第一个字符。

⑤printf("%s",字符串数组名即字符串数组地址);

⑥printf("%-10s",字符串变量名);

显示字符串时限定十位(不足则补空格),并靠左端对齐。

⑦printf("%s",*二级指针变量);

⑧printf("字符串%05d\n",整型变量);

先显示字符串,然后显示整型变量的值(限五位,不足则补零),最后换行。

注:

1.① 需先定义 float 实型变量;

② 需先定义 float (*函数指针名)(); 并有相应的函数

③ 需先定义 char 字符变量='单个字符';

④⑥需先定义 char *字符串变量名; 并赋值

⑤ 需先定义 char 字符串数组名[]="字符串";

⑦ 需先定义 char **二级指针变量

2.其它转换字符(在%后)有

① o 整型数以无符号的八进制形式输出

② x 整型数和伪变量以无符号的十六进制形式输出

③ u 整型数以无符号的十进制形式输出

④ e 浮点数或双精度浮点数以指数形式输出

⑤ g 选用e或f格式中输出位数较短的形式

⑥ p 以无符号的十六进制形式输出变量的地址。若要输出函数的地址,远指针用Fp;近指针用Np。

putch()向屏幕输出字符的函数

使用方式:

① putch('转义字符');

② putch('单个字符');

③ putch(字符变量);

注:③需先定义 char 字符变量='单个字符';

头文件:conio.h

putchar()在stdout上输出字符的宏

原形:int putchar(int c)

返回值:成功返回字符c,失败返回EOF。

头文件:stdio.h

更多内容请看C/C++进阶技术文档专题,或

putenv()将字符串放入当前环境中的函数

原形:int putenv(const char *name)

用法例:putenv("PATH=C:\B\TC");

功能:把字符串name加到当前程序运行的环境中。当程序结束后,原环境将得到恢复。

返回值:0(成功);-1(失败)

头文件:stdlib.h

putimage()重新写屏函数(输出一个位图象到图形屏幕上的函数)

功能:将用getimage()函数储存在buf 所指向的内存区域的图形输出到屏幕上。

原形:

void far putimage(int left,int top,void far *buf,int op)

其中op的值决定了图形以何种方式写到屏幕上。

COPY_PUT 或0 原样复制

XOR_PUT 或1 与屏幕图形取“异或”后写入

OR_PUT 或2 与屏幕图形取“或”后写入

AND_PUT 或3 与屏幕图形取“与”后写入

NOT_PUT 或4 复制原图形的“逆”

使用不同的方式将图形写到屏幕上,可以实现图形变换。例如,采用异或方式在原始位置重写,那么,原图将消失。 假如再使用复制方式(COPY_PUT)在一个新的地方重现该图形,就产生了图形的移动。

头文件:graphics.h

putpixel()写像素点函数

原形:void far putpixel(int x,int y,int color)

头文件:graphics.h

puts()输出一字符串到stdout(标准输出)的函数

使用方式:

① puts("字符串");

② puts(字符串变量名即字符串变量的地址)

注:②需先定义 char *字符串变量名="字符串";

头文件:stdio.h

_read()读文件函数

原形:int _read(handle,buffer,count)

int handle;//文件句柄

void *buffer;//存放读出数据的缓冲区

unsigned count;//一次读出的字节数

功能:从由handle指定的文件中读取由count指定字节数的数据到buffer

返回值:0-0xfffe(实际读出的字节数);-1(错误)

头文件:io.h

read()读文件函数

原形:int read(int handle,void *buf,unsigned len)

功能:从与handle(从creat、open、dup或dup2调用中得到的句柄)相联的文件中读取len字节到由buf所指的缓冲区中。对于以文本方式打开的文件,read删除读入数据中的回车符。当读到Ctrl-Z字符时返回文件结束。对于磁盘文件,read从当前文件指针处开始读取数据。在读操作完成后,文件指针增量为读入的字节数。对于设备,直接从设备中读字节。

返回值:读入缓冲区的字节数,假如文件以文本方式打开,则不包括回车符和Ctrl-Z字符。

头文件:io.h

realloc()重新分配内存函数

原形:void *realloc(void *block,size_t size)

block指向用malloc、calloc或realloc已得到的内存。

size是重新分配的字节。

返回值:重分配的块地址。若不能重分配,则返回NULL。

头文件:stdlib.h

rectangle()画一个矩形的函数

原形:void far rectangle(int left,int top,int right,int bottom)

功能:用当前线性、宽度和画线颜色绘制一个矩形。

头文件:graphics.h

remove()删除一个文件的函数

原形:int remove(const char *filename)

返回值:0(成功);-1(失败)

头文件:stdio.h

更多内容请看C/C++进阶技术文档专题,或

rename()文件改名函数

原形:int rename(const char *oldname,const char *newname)

注重:假如newname中包含了一个驱动器指示符,它必须与oldname中给出的指示符相同。oldname和newname中的目录可以不同,因此rename函数把文件从一个目录移到另一个目录。不答应使用通配符。

返回值:0(成功);-1(失败)

restorecrtmode()恢复屏幕视频模式为调用initgraph前的设置的函数

原形:void far restorecrtmode(void)

头文件:graphics.h

rmdir()删除目录函数

原形:int rmdir(const char *path)

注重:删除的目录不能是当前目录,不是根目录,是空目录

返回值:0(成功);-1(操作出错)

头文件:dir.h

_rotl()将一个无符号整形数左循环移位的函数

原形:unsigned _rotl(unsigned value,int count)

功能:将value向左循环移动count位。

返回值:将value向左循环移动count位后的值。

头文件:stdlib.h

_rotr()将一个无符号整形数右循环移位的函数

原形:unsigned _rotr(unsigned value,int count)

功能:将value向右循环移动count位。

返回值:将value向右循环移动count位后的值。

头文件:stdlib.h

scanf()格式化输入函数

使用格式:scanf("输入格式",输入项系列)

① scanf("%f",&实型变量)

② scanf("%c",&字符变量)

③ scanf("%s",字符串变量)

④ scanf("%d",&整型变量)

注:需先定义以上各种变量如 char *字符串变量;

searchpath()按dos路径查找一个文件的函数

原形:char *searchpath(const char *file)

用法:p=searchpath("文件名"); 先定义char *p;

功能:搜索dos路径(环境变量中的path=....)来定位由file给出的文件。

返回值:指向完整路径名字符串的指针。定位失败返回NULL。

头文件:dir.h

segread()读段寄存器函数

原形:void segread(struct SREGS *segp)

作用:把当前寄存器的值保存到SREGS型机构变量segp中。

segs.cs=代码段寄存器的值;

segs.ds=数据段寄存器的值;

segs.es=附加段寄存器的值;

segs.ss=堆栈段寄存器的值;

setactivepage()设置图形输出活动页的函数

原形:void far setactivepage(int page)

功能:使page成为当前活动的图形页,其后所有的图形输出操作都在page图形页进行。活动图形页可以不是在屏幕上看到的页。

头文件:graphics.h

setcolor()设置当前要画的线颜色的函数

原形:void far setcolor(int color)

头文件:graphics.h

注重:颜色值(EGA/VGA)

0-BLACK;1-BLUE; 2-GREEN;

3-CYAN; 4-RED;5-MAGENTA;

6-BROWN;7-LIGHTGRAY;8-DARKGRAY;

9-LIGHTBLUE;10-LIGHTGREEN;11-LIGHTCYAN;

12-LIGHTRED;13-LIGHTMAGENTA;

14-YELLOW;15-WHITE

setdisk()设置当前驱动器的函数

原形:int setdisk(int drive)

功能:把由drive指定的驱动器修改成当前驱动器,返回可使用的驱动器数。

头文件:dir.h

更多内容请看C/C++进阶技术文档专题,或

setgraphmode()将系统设置成图形模式并清屏的函数

原形:void far setgraphmode(int mode)

功能:选择一个不同于调用initgraph()函数时所设置的缺省的图形模式。

返回值:假如给了一个对当前驱动程序来说无效的模式,则返回-10。

头文件:graphics.h

setlinestyle()设置当前画线宽度和类型的函数

原形:

void far setlinestyle(int linestyle,unsigned upattern,int thickness)

其中:linestyle=0为实线;1为点线;2为中心线;3为破折线;4为用户定义。

thickness=1为一个像素宽;3为三个像素宽。

只有当linestyle=4时,upattern才起作用。

头文件:graphics.h

settextstyle()显示字符的当前设置函数

功能:设置当前输出英文字符的字体、大小和方向。

调用方式:

void far settextstyle(int font,int direction,int charsize)

其中①参数font确定所选定的字体外形,

DEFAULT_FONT 或0 是8×8位图字体

TRIPLEX_FONT 或1 是三重矢量字体

SMALL_FONT 或2 是小号矢量字体

SANS_SERIF_FONT或3 是无衬线矢量字体

GOTHIC_FONT 或4 是哥特矢量字体

②参数durection字符的显示方向,

HORIZ_DIR 或0 是水平方向

VERT_DIR 或1 是垂直方向

③参数charsize表示字符放大的倍数,其值为0到10。

setvect()设置中断向量函数

setvect(int 中断号,void interrupt(*中断函数名))

功能:把中断服务程序的地址装入中断向量表中。

调用方法:setvect(中断号,中断函数名即地址);

(1)得预先定义要代替原函数的新函数

void interrupt 中断函数名(void)

{......}

(2)得先保留原中断函数地址

void interrupt (*保留函数名)(void);

保留函数名=getvect(中断号);

(3)事后得将原中断函数地址装回向量表中

setvect(中断号,保留函数名);

setviewport()建立视口的函数

原形: void far setviewport(int left,int top,int right,int bottom,int clip)

功能:用左上角坐标left,top和右下角坐标right,bottom建立一个视口,假如clip为1,则超出视口的输出自动被剪裁掉;假如clip为0,则不被剪裁。

例:setviewport(0,0,100,100,1)建立对角线为0,0和100,100的视口,并带有剪裁功能。

注:要清除当前视口,用函数clearnviewport()。

setvisualpage()设置可见的图形页号的函数

原形:void far setvisualpage(int page)

功能:使得page成为可见的图形页。

头文件:graphics.h

sin()

原形∶double sin(double arg)

功能∶计算arg(弧度)的正弦值

头文件∶math.h

sprintf()格式化输出到数组的函数

原形∶int sprintf(buf,format,arg_list)

其中char *buf;

功能∶把arg_list参量的值按format的格式输出到buf中。

例∶sprintf(buffer,"相对扇区号∶%s(其中∶柱面号为%d/磁头号为%d/扇区号为%d)",string,cyls,head,sector);

其中char buffer[100];

char *string="";

int cyls,head,sector;

返回值∶实际写入数组的字符个数。

头文件∶stdio.h

strcat()

原形∶char *strcat(str1,str2)

功能∶把str2所指的字符串连接到str1所指的字符串后。

返回值∶指向str1的指针。

tan()

原形∶double tan(double arg)

功能∶计算arg(弧度)的正切值

头文件∶math.h

更多内容请看C/C++进阶技术文档专题,或

_write()写文件函数

原形:int _write(handle,buffer,count)

int handle;//文件的句柄

void *buffer;//存放数据的缓冲区

unsigned count;//写入的字节数

功能:从由buffer指定的缓冲区写入由count指定字节数的数据到由handle指定的文件。返回实际写入的字节数。

返回值:0-0xfffe(实际写入的字节数);-1(错误)

头文件:io.h

write()写文件函数

原形:int write(int handle,char *buf,unsigned len)

用法:write(文件句柄,缓冲区地址,缓冲区字节长度<最大65534>);

功能:将缓冲区的数据写入与handle相联的文件或设备中,handle是从creat、open、dup或dup2调用中得到的文件句柄。对于磁盘或磁盘文件,写操作从当前文件指针处开始,对于用O_APPEND选项打开的文件,写数据之前,文件指针指向EOF;对于设备,字节被直接传送到设备中;

返回值:实际写入的字节数(不包括回车符),出错时返回-1。

头文件:io.h

更多内容请看C/C++进阶技术文档专题,或

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
>>返回首页<<
推荐阅读
 
 
频道精选
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有