C语言常用函数

C语言常用函数
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)

s格式为:符号数字

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

头文件:stdlib.h

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

原形:bcd bcd(int x)

bcd bcd(double x)

bcd bcd(double x,int decimals)

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

头文件:bcd.h

函数7。bdos()

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

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

功能∶DOS系统调用(INT21H)

返回值∶AX中的值

函数8。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-操作成功

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

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

头文件:bios.h

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

函数9。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

函数10。calloc()分配内存函数

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

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

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

头文件:stdlib.h、calloc.h

函数11。ceil()

原形∶double ceil(double num)

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

头文件∶math.h

函数12。cgets()读字符串函数

原形:char *cgets(char *str)

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

注意:在调用cgets之前,必须将要读入的字符串最大长度存入str[0]中,返回时str[1]被设置为实际读入的字符数。实际字符

头文件:conio.h

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

原形:int chdir(const char *path)

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

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

头文件:dir.h

函数14。_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

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

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

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

amode的值存取权限

S_IWRITE 允许写

S_IREAD允许读(只读)

S_IREAD|S_IWRITE 可读可写

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

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

函数16。clock()

原形∶long clock(void)

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

头文件∶time.h

函数17。close()关闭文件函数

该函数并不在文件末尾写一个Ctrl-Z字符,如果想用该字符结束文件,必须显式地给出该字符。返回值:0(成功);-1(失败)

头文件:io.h

函数18。closegraph()关闭图形函数

原形:void far closegraph(void)

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

头文件:graphics.h

函数19。cos()

原形∶double cos(double arg)

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

头文件∶math.h

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

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

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

用法:ctrlbrk(函数名);

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

头文件:dos.h

函数21。delay()暂停函数

原形:void delay(unsigned milliseconds)

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

头文件:dos.h

函数22。disable()屏蔽中断的宏

原形:void disble(void)

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

头文件:dos.h

函数23。enable()开硬件中断的宏

原形:void enable(void)

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

头文件:dos.h

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

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

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

原形∶int execl(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

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

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

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

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

先定义:char far *fptr;

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

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

头文件:alloc.h

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

原形:void farfree(void far *block)

头文件:alloc.h

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

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

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

先定义char far *fptr;

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

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

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

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

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

头文件:alloc.h

函数29。fclose()关闭一个流函数

原形:int fclose(FILE *stream)

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

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

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

头文件:stdio.h

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

原形:int fcloseall(void)

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

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

头文件:stdio.h

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

原形∶int feof(FILE *fp)

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

头文件∶stdio.h

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

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

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

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

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

头文件:stdio.h

函数33。findfirst()函数和findnext()函数

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

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

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

struct ffblk

{

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)

函数34。floodfill()填充区域的函数

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

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

头文件:graphics.h

函数35。floor()

原形∶double floor(double num)

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

头文件∶math.h

函数36。fnmerge()建立文件路径函数

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

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

头文件:dir.h

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

其中drive中有冒号;dir中有开始和结尾的反斜杠;ext包括开始圆点返回值:如果有扩展名,则返回值&EXTENSION!=0

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

如果有目录名,则返回值&DIRECTORY!=0

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

头文件:dir.h

函数38。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]代替,则可使用命令行形式指定文件名

函数39。FP_OFF()获取远地址偏移量的宏

原形:unsigned FP_OFF(void far *p)

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

返回值:偏移量

头文件:dos.h

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

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

使用形式:

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

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

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

其中定义FILE *stream;

int i;char c;float f;

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

头文件:stdio.h

函数41。FP_SEG()获取远地址段值的宏

原形:unsigned FP_SEG(void far *p)

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

返回值:段地址值

头文件:dos.h

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

原形:void free(void *block)

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

头文件:stdlib.h、alloc.h

函数42。fscanf()格式化输入函数

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

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

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

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

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

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

头文件:stdio.h

函数43。fseek()移动文件指针函数

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

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

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

定义FILE *文件指针名;

"起点"取值:

0或SEEK_SET(表示文件开头)

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

头文件:stdio.h

函数44。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();

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

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

其中∶double value是待转化数

int ndigit是转化长度

char *buf保存转化后的地址

头文件∶stdlib.h

函数46。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

函数47。getc()从流中取字符的宏

原形:int getc(FILE *stream)

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

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

头文件:stdio.h

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

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

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

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

头文件:conio.h

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

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

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

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

头文件:stdio.h

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

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

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

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

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

头文件:dir.h

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

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

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

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

头文件:dir.h

函数62。getdate()读取系统日期函数

原形:void getdate(pdate)

struct date

{

int da_year;

int da_day;

int da_mon;

};

函数63。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

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

原形:int getdisk(void)

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

头文件:dir.h

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

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

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

需先定义char *s;

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

头文件:stdlib.h

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

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

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

头文件:graphics.h

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

原形:int far getmaxx(void)

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

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

原形:int far getmaxy(void)

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

头文件:graphics.h

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

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

头文件:graphics.h

函数70。getpsp()

原形∶unsigned getpsp(void)

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

头文件∶dos.h

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

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

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

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

函数72。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;

函数73。getvect()读取中断向量函数

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

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

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

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

用后恢复setvect(5,oldfunc);

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

原形:int far get x(void);

头文件:graphics.h

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

原形:int far gety(void);

头文件:graphics.h

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

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

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

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

头文件:graphics.h

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

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

调用方式:

void far init graph(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(0x端口号);

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

头文件:dos.h

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

原形:unsigned char inportb(int portid)

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

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

头文件:dos.h

函数80。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

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

头文件:dos.h

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

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

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

WORDREGS BYTEREGS

┌┌───────┬──────┐──┬──┐│││al│ 1 byte│

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

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

││bx├──────┤

│││bh│

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

│││cl│

││cx├──────┤

│││ch│

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

│││dl│

││dx├──────┤

│││dh│

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

││││

││si││

││││

│├───────┤│

││││

││di││

││││

│├───────┤│

││││

││cflag││

││││

│├───────┤│

││││

││flags││

││││

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

其中字段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.寄存器名

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

原形:int intdos(inregs,outregs)

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

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

功能:产生DOS软中断

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

头文件:dos.h

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

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

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

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

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

功能:产生DOS软中断

头文件:dos.h

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

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

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

{

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

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

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

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

返回值:指向string的指针

头文件:stdlib.h

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

原形:int kbhit(void)

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

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

头文件:conio.h

函数87。keep()驻留并退出函数

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

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

头文件:dos.h

函数88。log()

原形∶double log(double num)

函数89。log10()

原形∶double log10(double num)

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

头文件∶math.h

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

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

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

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

头文件:stdlib.h

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

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

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

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

头文件:stdlib.h

函数92。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。

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

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

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

返回值:指向string的指针

头文件:stdlib.h

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语言中常见的功能函数

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语言常用IO函数

一些比较常用的io函数,总结了一下,一块贴出来了 stdin标准输入流 stdout标准输出流 stderr标准错误流 字符IO函数 1.int getchar() 说明:从stdin读取1个字符 返回值:成功,返回该字符;出错,返回EOF; 2.int fgetc(FILE fp) 说明:功能同getchar,默认从文件fp读取; 返回值:成功,返回该字符;出错,返回EOF; 可以重定向 3.int getc(FILE fp) 说明:功能与fgetc相同,但getc既可以被用作 函数实现,也可以被用作宏实现,并且它的编码效率 可能会更高. 可以重定向 4.int putchar(int ch) 说明:向stdout输出字符ch; 返回值:成功,返回该字符;出错,返回EOF; 5.int fputc(int c,FILE fp) 说明:功能同putchar,默认向fp输出字符ch; 返回值:成功,返回该字符;出错,返回EOF; 6.int putc(int c,FILE fp) 说明:功能与fputc相同,但putc与getc一样既可能被用作 函数实现,也可能被用作宏实现,并且它的编码效率可能会更高;可以重定向 字符串IO函数 1.char gets(char str) 说明:从stdin读取字符串(不包括'n')写入到字符串str中; 返回值:成功,返回str首地址;错误,返回NULL; 2.char fgets(char str,int N,FILE fp) 说明:默认从文件fp中读取N个字符(包括'n')写入到字符串str中,

如果实际输入字符串小于N,fgets自动添加'n', 返回值:成功,返回字符串首地址;错误或遇到EOF,返回NULL;可以重定向 3.int puts(const char str) 说明:向stdout输出字符串str,然受输出一个'n', 返回值:成功,返回非负值;错误,EOF; 4.int fputs(const char str,FILE fp) 说明:功能同puts,默认向文件fp写入字符串str; 返回值:成功,返回非负值;错误,EOF; 可以重定向 格式化IO函数 1.int scanf(const char format,...) 说明:根据format从stdin格式化读取N个值,并输入到... 返回值:成功,返回读取的项数;出错,返回EOF 2.int fscanf(FILE fp,const char format,...) 说明:功能同scanf,默认从文件fp读取, 返回值:成功,返回读取的项数;出错或遇到文件尾,返回EOF 可以重定向 3.int sscanf(const char buf,const char format,...) 说明:根据format从buf格式化读取N个值,并输入到... 返回值:成功,返回读取的项数;出错,返回EOF 4.int printf(const char format,...) 说明:根据format格式化数据,并输出到stdout 返回值成功,返回输出字符数;错误,返回负数; 5.int fprintf(FILE fp,const char format,...) 说明:功能同printf,默认向文件fp写入; 可以重定向 6.int sprintf(char buf,const char format,...) 说明:根据format格式化数据,并输出到buf, 返回值:成功,返回输出字符数;错误,返回负数

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语言常见基本词汇及词汇解释

C语言常用基本词汇及其他提示语运算符与表达式: 1.constant 常量 2. variable 变量 3. identify 标识符 4. keywords 关键字 5. sign 符号 6. operator 运算符 7. statement语句 8. syntax 语法 9. expression 表达式 10. initialition初始化 11. number format 数据格式 12 declaration 说明 13. type conversion 类型转换 14.define 、definition 定义 条件语句: 1.select 选择 2. expression 表达式 3. logical expression 逻辑表达式 4. Relational expression 关系表达式 5.priority优先

6. operation运算 7.structure 结构 循环语句: 1.circle 循环 2. condition 条件 3. variant 变量 4. process过程 5.priority优先 6. operation运算 数组: 1. array 数组 2. reference 引用 3. element 元素 4. address 地址 5. sort 排序 6. character 字符 7. string 字符串 8. application 应用函数: 1.call 调用 2.return value 返回值 3.function 函数

4. declare 声明 5. `parameter 参数 6.static 静态的 7.extern 外部的 指针: 1. pointer 指针 2. argument 参数 3. array 数组 4. declaration 声明 5. represent 表示 6. manipulate 处理 结构体、共用体、链表: 1 structure 结构 2 member成员 3 tag 标记 4 function 函数 5 enumerate 枚举 6 union 联合(共用体) 7 create 创建 8 insert 插入 9 delete 删除 10 modify 修改

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语言中游戏编程常用的函数实例解说

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语言吧】做游戏常用函数

时间延迟函数 函数名: 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语言中最常用标准库函数 - candyliuxj - CSDN博客

C语言中最常用标准库函数- candyliuxj - CSDN博客 C语言中最常用标准库函数收藏 标准头文件包括: <asset.h> <ctype.h> <errno.h> <float.h> <limits.h> <locale.h> <math.h> <setjmp.h> <signal.h> <stdarg.h> <stddef.h> <stdlib.h> <stdio.h> <string.h> <time.h> 一、标准定义(<stddef.h>) 文件<stddef.h>里包含了标准库的一些常用定义,无论我们包含哪个标准头文件,<stddef.h>都会被自动包含进来。 这个文件里定义: l 类型size_t (sizeof运算符的结果类型,是某个无符号整型); l 类型ptrdiff_t(两个指针相减运算的结果类型,是某个有符号整型);

l 类型wchar_t (宽字符类型,是一个整型,其中足以存放本系统所支持的所有本地环境中的 字符集的所有编码值。这里还保证空字符的编码值为0); l 符号常量NULL (空指针值); l 宏offsetor (这是一个带参数的宏,第一个参数应是一个结构类型,第二个参数应是结构 成员名。offsetor(s,m)求出成员m在结构类型t的变量里的偏移量)。 注:其中有些定义也出现在其他头文件里(如NULL)。 二、错误信息(<errno.h>) <errno.h>定义了一个int类型的表达式errno,可以看作一个变量,其初始值为0,一些标准库函数执行中出错时将它设为非0值,但任何标准库函数都设置它为0。 <errno.h>里还定义了两个宏EDOM和ERANGE,都是非0的整数值。数学函数执行中遇到参数错误,就会将errno 置为EDOM,如出现值域错误就会将errno置为ERANGE。 三、输入输出函数(<stdio.h>) 文件打开和关闭: FILE *fopen(const char *filename, const char *mode); int fclose(FILE * stream);

常用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语言常用函数

函数名: 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语言常用头文件及函数

#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,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语言常用函数手册 chm格式

c语言常用函数手册 chm格式 https://www.360docs.net/doc/004101451.html,/downinfo/19389.html 全都很详细例如下面的 函数名: 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) { perror("Disk problem"); exit(1); } printf("Read OK\n"); strt = 3; for (i=0; i<80; i++) { ch_out = buf[strt+i]; putchar(ch_out); } printf("\n"); return(0); } 函数名: access 功能: 确定文件的访问权限 用法: int access(const char *filename, int amode); 程序例: #include #include int file_exists(char *filename);

相关文档
最新文档