TC2.0库函数清单
TC2.0库函数清单
一 字符函数和字符串函数
ANSI C 标准要求在使用字符函数时包含ctype.h,使用字符串函数时包含头文件string.h。
1、 字符函数 (ctype.h)
(1) isalnum()函数
函数声明:int isalnum(int ch)
功能:测试参数ch是否是字母(A-Z,大小写均可)或数字(0-9)。如果是,返回非零值,否则返回零。
(2) isalpha () 函数
函数声明:int isalpha(int ch)
功能:测试参数ch是否是字母(A-Z,大小写均可)。如果是,返回非零值,否则返回零。
(3) iscntrl () 函数
函数声明:int iscntrl(int ch)
功能:测试参数ch是否是控制字符(数值为00-1f或7f)。如果是,返回非零值,否则返回零。
(4) isdigit () 函数
函数声明:int isdigit(int ch)
功能:测试参数ch是否是数字(0-9)。如果是,返回非零值,否则返回零。
(5) isgraph () 函数
函数声明:int isgraph(int ch)
功能:测试参数ch是否是除空格之外的可打印字符。如果是,返回非零值,否则返回零。
(6) islower()函数
函数声明:int islower(int ch)
功能:测试参数ch是否是小写字母。如果是,返回非零值,否则返回零。
(7) isprint () 函数
函数声明:int isprint(int ch)
功能:测试参数ch是否是可打印字符,包括空格。如果是,返回非零值,否则返回零。
(8) ispunct () 函数
函数声明:int ispunct(int ch)
功能:测试参数ch是否是标点、字符或空格。如果是,返回非零值,否则返回零。
(9) isspace () 函数
函数声明:int isspace(int ch)
功能:测试参数ch是否是空格、制表字符或换行字符。如果是,返回非零值,否则返回零。
(10) issupper() 函数
函数声明:int isupper(int ch)
功能:测试参数ch是否是大写字母(A-Z)。如果是,返回非零值,否则返回零。
(11) isxdigit () 函数
函数声明:int isxdigit(int ch)
功能:测试参数ch是否是十六进制数(0-9,A-F或a-f)。如果是,返回非零值,否则返回零。
2、 字符串函数 (string.h)
(1) stpcpy() 函数
函数声明: char *stpcpy ( char *dest,char *src)
功能:拷贝字符串src到dest,直接拷贝到终结空字节字符为止。返回dest+strlen(src)值。
(2) strcat() 函数
函数声明:char *strcat( char *str1, char *str2)
功能:把str2连到str1上,并以空(NULL)结束str1。原来作为str1结尾的空结束符被str2的第一个字符覆盖了,str2未被修改。返回合并后字符串的指针。注意要保证str1足够大。
(3) strchr() 函数
函数声明: char *strchr ( char *str, char ch)
功能:返回由str所指向的字符串中首次出现的ch的位置指针。如果未发现与ch匹配的字符,则返回空指针。
(4) strcmp() 函数:
函数声明:int strcmp ( char *s1, char *s2)
功能: 对字符串s1和s2进行比较,从第一个字符开始,进行逐个比较,直到对应的字符不同或达到串尾为止。s1小于s2,返回值<0;s1等于s2,返回值=0;s1大于s2,返回值>0。
(5) strcpy() 函数
函数声明: char * strcpy ( char *str1, char *str2)
功能:把str2的内容复制到str1中,str2必须是一个指向NULL结尾的字符串的指针。返回值向str1的指针。
(6) strcspn() 函数
函数声明: int strcspn ( char *str1, char *str2)
功能: 返回字符串str1的初始子串的长度,该子串中的任一字符都不包含于str2所指的字符串中,即函数返回str1和str2任何一个字符相匹配的第一个字符的下标。
(7) strdup() 函数
函数声明:char * strdup ( char *str)
功能:按字符串str的长度在内存开出空间,并将str的内容拷贝到该空间。返回值向该存放区域的指针。
(8) strerror() 函数
函数声明:char *strerror (int errnum)
功能:接受一个int类型的参数errnum,返回与之相应的错误信息字符串的指针。
(9) strlen() 函数
函数声明:unsigned strlen (char *str)
功能:用来计算以空(NULL)结束的字符串str的长度,并返回该长度,NULL不计
在内。
(10) strlwr() 函数
函数声明:char *strlwr (char *str)
功能:把str所指向的字符串变为小写字母。
(11) strncat() 函数
函数声明:char *strncat ( char *str1, char *str2, int count)
功能:把由str2所指向的字符串中不超过count个的字符,连接到由str1所指向的字符串中,str1以空(null)结尾的。str1结尾处的空字节结束符被str2的第一个字节覆盖。注意保证str1足够大。
(12) strncpy() 函数
函数声明:char *strncpy (char *dest, char *src, int count)
功能:把src所指向的字符串的count个字符拷贝到dest所指向的字符串中,src必须是一个指向以(null)结束的字符串指针。若src所指向的字符串少于count个字符,则在dest结尾处加(null),直到拷贝完count个字符;若多于count个字符,则dest字符串不以空(null)结束。返回指向dest的指针。
(13) strnset () 函数
函数声明: char *strnset( char *str, char ch, unsigned count)
功能:把str所指向的字符串的前count个字符设置为ch的值。
(14) strpbrk() 函数
函数声明: char *strpbrk( char *str1,char *str2)
功能: 在str1中寻找与str2中任何一个字符相匹配的第一个字符的位置。null不包括在内。返回指向str1中第一个相匹配的字符的指针。若没有,返回null指针。
(15) strrchr() 函数
函数声明: char *strrchr (char *str,char ch)
功能:返回由str所指向的字符串中最后一次出现的ch的低字节的位置指针。若不匹配,返回null指针。
(16) strrev() 函数
函数声明: char *strrev ( char *str)
功能:除了空结束符以外,把str的所有字符顺序都倒过来。返回指向颠倒顺序后
的字符串指针。
(17) strset() 函数
函数声明: char *strset (char *str, char ch)
功能:把由str所指向的字符串中的所有字符都变成ch的值。返回字符串str的指针。
(18) strspn() 函数
函数声明: int strspn ( char *str1, char *str2)
功能: 在str1中寻找第一个不属于str2中字符的位置。记录从开始到这个位置的长度。返回str1的第一个与str2任一个字符不匹配的字符下标。
(19) strstr() 函数
函数声明:char *strstr(char *str1,char *str2)
功能:在字符串str1中寻找第一个遇到str2字符串中的字符的位置(除str2 的空结
束符外)。返回指向该位置的指针,如果没有找到匹配的,返回空指针。
(20) strupr() 函数
函数声明:char *strupr( char *str)
功能: 把str所指向的字符串都变成大写字母。
二 数学函数 (math.h)
以下所有的函数都在头文件math.h中。
1、 三角函数
(1) acos() 函数
函数声明:double acos(double arg)
功能:求arg的反余弦值,arg的值在-1到1之间。返回值用弧度表示。
(2) asin() 函数
函数声明:double asin(double arg)
功能:求arg的反正弦值,arg的值在-1到1之间。返回值用弧度表示。
(3) atan () 函数
函数声明:double atan(double arg)
功能:求arg的反正切值,arg的值在-1到1之间。返回值用弧度表示。
(4) atan2 () 函数
函数声明:double atan2(double x,double y)
功能:求x/y的反正切值.
(5) cos () 函数
函数声明:double cos(double arg)
功能:求arg的余弦值,arg的值必须用弧度表示。返回值在-1到1之间。
(6) sin () 函数
函数声明:double sin (double arg)
功能:求arg的正弦值,arg的值必须用弧度表示。
(7) tan () 函数
函数声明:double tan(double arg)
功能:求arg的正切值,arg的值必须用弧度表示。
2、 双曲线函数
(1) cosh() 函数
函数声明:double cosh(double arg)
功能:求arg的双曲余弦值。
(2) sinh () 函数
函数声明:double sinh(double arg)
功能:求arg的双曲正弦值。
(3) tanh () 函数
函数声明:double tanh(double arg)
功能:求arg的双曲正切值。arg的值必须用弧度表示。
3、 指数和对数函数
(1) exp() 函数
函数声明:double exp(double arg)
功能:求自然数为底的指数earg的值。该函数返回为幂值。
(2) frexp() 函数
函数声明:double frexp(double num,int *exp)
功能:该函数的作用是将num分解成一个尾数和指数,其中尾数的数值分为为0.5~1
之间,指数保存在exp中,尾数由函数返回。
(3) log()函数
函数声明:double log(double num)
功能:求num的自然对数。注意num为正数。
(4) log10() 函数
函数声明:double log10(double num)
功能: 求以10为底的num的对数。注意num为正数。
(5) modf() 函数
函数声明: double modf(double num, double *ipart)
功能:把num分解成整数部分和小数部分。函数返回小数部分,并把整数放在由
ipart所指的变量中。
(6) pow() 函数
函数声明:double pow (double base, double exp)
功能:计算以base为底的exp次幂baseexp。函数返回幂指数结果。
(7) pow10() 函数
函数声明:double pow10 ( int p)
功能:计算10p的值。函数返回该值。
(8) sqrt() 函数
函数声明:double sqrt (double num)
功能:返回参数num的平方根。注意参数不能为负数,否则出现定义域错误。
4、 其它函数
(1) abs() 函数
函数声明:int abs ( int x)
功能:求整数x的绝对值。
(2) cabs() 函数
函数声明: double cabs ( struct complex znum)
功能:求复数的绝对值。
(3) ceil() 函数
函数声明:double ceil ( double num)
功能:找出不小于num的最小整数(表示为双精度)。函数返回大于或等于num的最小整数值。
(4) fabs() 函数
函数声明:double fabs (double num)
功能:求num的绝对值。
(5) floor() 函数
函数声明:double floor (double num)
功能:求不大于num的最大整数(以双精度表示)。函数返回不大于num的最大整数。
(6) fmod() 函数
函数声明:double fmod (double x,double y)
功能:求x/y的余数。函数返回该余数值。
(7) hypot() 函数
函数声明:double hypot (double x,double y)
功能:对于给定的直角三角形的两个直角边,求其斜边的长度。函数返回斜边值。
(8) labs() 函数
函数声明:long labs ( long x )
功能:求x的绝对值。
三 输入输出函数
ANSI标准的I/O系统,需要头文件stdio.h。对于UNIX型I/O系统,需要头文件
io.h。下面函数在io.h中的会特别注明。
1、 文件操作函数
(1) close () 函数
函数声明:int close ( int fd )
该原型在io.h中
功能:关闭与文件句柄(fd)相连的文件。若成功关闭,返回0,否则返回-1。
(2) creat () 函数
函数声明:int creat ( char *filename, int pmode )
该原型在io.h中
功能:以pmode所指定的方式建立文件。若成功则返回正数,否则返回-1。
(3) fcolse () 函数
函数声明:int fclose ( FILE *stream)
功能:关闭stream相连的文件,并释放文件缓冲区。如果成功,返回0,否则返回
一个非0值。
(4) feof () 函数
函数声明:int feof (FILE *stream)
功能:检查流文件是否结束。遇到文件结束符返回非零值,否则返回0。
(5) filelength() 函数
函数声明:long filelength ( int handle)
该函数原型在io.h中
功能:返回按字节数计算的文件长度。如果出现错误,返回-1L,同时errno被设置为EBADF。
(6) fileno() 函数
函数声明:int fileno (FILE *stream)
功能:用于返回stream指定的文件句柄。
(7) fopen() 函数
函数声明:FILE *fopen ( char *fname, char *mode)
功能:以mode指定的方式打开名为fname的文件。如果成功,返回指向该文件的指针,否则返回一个空指针。
(8) fread() 函数
函数声明:int fread ( void *buf, int size, int count, FILE *stream )
功能:从stream所指定的文件中读取count个字段,每个字段长度为size,并把它们放到buf指定的内存空间中。函数返回所读字段的个数,如遇文件结束或出错,返回0。
(9) fseek () 函数
函数声明:int fseek(FILE *stream, long offset, int origin)
功能:函数根据offset(偏移量)和origin(起始位置)的值来设置与stream相连接的文件的位置指示器。在stdio.h中为origin定义了三个宏名字:
SEEK_SET: 文件开始位置
SEEK_CUR: 文件当前位置
SEEK_END: 文件结束位置
(10) ftell () 函数
函数声明: long ftell(FILE *stream )
功能:函数得到文件的位置指示器的当前值。该值是以文件开头算起的字节数。出现错误时返回-1L。
(11) fwrite () 函数
函数声明:int fwrite(void *buf, int size, int count, FILE *stream )
功能:函数把buf指向的空间中的count个字段写到stream所指向的文件中。每个字段长为size个字符。函数返回实际所写的字段个数,操作成功时,等于所要求的个数。
(12) remove () 函数
函数声明:int remove(char *fname)
功能:删除fname所指定的文件。成功返回0,否则返回-1。
(13) rename () 函数
函数声明:int rename ( char *oldfname, char *newfname)
功能:修改文件名称,将文件的名字从oldfname改为newfname。成功返回0,否则返回-1。
(14) setbuf () 函数
函数声明:void setbuf (FILE *stream, char *buf)
功能:函数用来指定stream指向的流所使用的缓冲区。当把buf设为0时,用来关闭缓冲区。buf的大小为BUFSIZE字节长。BUFSIZE由stdio.h定义的。
(15) setmode () 函数
函数声明:int setmode ( int handle, unsigned mode )
原型在io.h中
功能:函数用来重新设置一个已打开的文件的模式。有效模式为O_BINARY和O_TEXT。成功时返回0,出错返回-1。
(16) setvbuf () 函数
函数声明:int setvbuf(FILE *stream, char *buf, int mode, unsigned size)
功能:函数对stream指定的文件指定缓冲区,大小和模式。成功时返回0,出错
时返回非零值。
模式的取值和含义如下:
_IOFBF 0 满缓冲区后刷新缓冲区
_IOLBF 1 在缓冲区写入或读出一行字符后刷新缓冲区
_IONBF 2 满不缓冲
(17) tmpfile () 函数
函数声明:FILE *tmpfile ( void )
功能:函数打开一个临时文件,并返回一个指向流的指针。发生错误时返回一个空指针。在该文件被关闭或程序执行完毕时会自动抹掉。
(18) tmpnam () 函数
函数声明: char *tmpnam(char *name )
功能:函数产生一个唯一的文件名字,并将它存放在name指向的数组内。操作成功时返回一个指向该名字的指针,否则返回空指针。
2、 格式化输入与输出函数
(1) fprintf () 函数
函数声明:int fprintf ( FILE *stream, char *format, arg_list)
功能:把arg_list (参数表) 内各参数的值,以format所指定的格式,输出到stream所指向的文件中。返回实际输出的字符数,如果出现错误,返回一个负数。
(2) fscanf () 函数
函数声明:int fscanf ( FILE *stream, char *format,arg_list)
功能:按指定格式从stream指定的文件中读出数据。
(3) printf () 函数
函数声明:int printf ( char *format,arg_list )
功能:以format指定的格式,把arg_list的参数写到stdout中。函数返回实际所写的
字符个数,如果为负值表示有错误发生。Format所指向的串有两类。第一类由字符构成,它们将被写到屏幕上;第二类是格式说明,定义各参数的显示格式。
(4) scanf () 函数
函数声明:int scanf ( char *format, arg_list )
功能:从标准输入设备按format指定的格式,输入数据给arg_list指向的单元。
函数返回赋值成功的字段数,遇文件结束返回EOF,出错返回-1。
(5) sprintf () 函数
函数声明:int sprintf ( char *buf, char *format, arg_list )
功能:作用与printf()函数相同,只是产生的输出被写入buf指向的缓冲区中。返回值等于实际写入的字符个数。
(6) sscanf () 函数
函数声明:int sscanf ( char *buf, char *format, arg_list )
功能:作用与scanf()函数相同,只是从buf指向的缓冲区中读取数据。返回值等于实际被附值的字段数。
(7) vprintf () 函数
函数声明: int vprintf ( char *format, va_list arg_ptr )
功能:该函数作用同printf函数,只是参数表由一个va_list类型的指针代替。指针是一个va_list型的指针,在stdarg.h中给出定义。
(8) vfprintf () 函数
函数声明:int vfprintf ( FILE *stream, char *format, va_list arg_list )
功能:该函数作用同fprintf函数,只是参数表由一个va_list类型的指针代替。
(9) vsprintf () 函数
函数声明:int vsprintf ( char *buf, char *format, va_list arg_list )
功能:该函数作用同sprintf函数,只是参数表由一个va_list类型的指针代替。
3、 字符输入输出函数
(1) fgetc () 函数
函数声明:int fgetc (FILE *stream)
功能:从stream所指定的流文件中取得下一个字符。函数返回所得到的字符,若遇文件结束返回EOF。
(2) fgets () 函数
函数声明:char * fgets ( char *str, int num, FILE *stream )
功能:从stream所指向的文件中读取一个长度为n-1的字符串,存入str所指向的内存空间。函数返回地址str,若遇文件结束或出错,返回NULL。
(3) fputc() 函数
函数声明:int fputc ( int ch, FILE *stream)
功能:将字符ch输出到stream所指向的流文件的当前位置处。如果成功,返回该字符的值,出现错误时返回EOF。
(4) fputs() 函数
函数声明:int fputs ( char *str, FILE *stream)
功能:把str指向的字符串的内容写入所指定的流文件中。但不写入字符串中的结尾标志符。如果成功,返回0,否则返回非零值。
(5) getc () 函数
函数声明: int getc ( FILE *stream )
功能:从stream指定的文件中读入当前位置的下一个字符,并使文件的位置指示器指向下一个字符。函数返回所读的字符。如遇文件结束或出错,返回EOF.
(6) getch () 函数 和getche () 函数
函数声明: int getch ( void )
int getche ( void )
功能:getch() 函数从控制台读取并返回下一个字符,但不把该字符回显到屏幕上。
getche() 函数从控制台读取并返回下一个字符,同时把该字符回显到屏幕上。
(7) getchar () 函数
函数声明:int getchar ( void )
功能:从标准输入设备中返回下一个字符。函数返回所读的字符,若遇文件结束返回EOF。
(8) gets () 函数
函数声明: char * gets ( char *str )
功能:从标准输入设备中读取字符并把它们str所指向的字符数组中。该函数在读到换行符或EOF时退出。操作成功返回str,否则返回NULL。
(9) getw () 函数
函数声明:int getw ( FILE *stream )
功能:从stream所指向的文件读取下一个整数。函数返回读入的整数,如遇文件结束或出错返回EOF。
(10) putc () 函数
函数声明:int putc ( int ch, FIFE *stream )
功能:把字符ch写到stream指向的文件中。操作成功返回所写的字符,如果出错返回EOF。
(11) putch () 函数
函数声明:int putch ( int ch )
原型在conio.h中
功能:把字符ch写到当前文本屏幕中。操作成功,函数返回所写的字符,出错则返回EOF。
(12) putchar () 函数
函数声明:int putchar ( int ch )
功能:把字符ch写到标准输出设备中。操作成功,函数返回所写的字符,出错则返回EOF。
(13) puts () 函数
函数声明:int puts ( char *str )
功能: 把str指向的字符串写到标准输出设备中。操作成功,函数返回换行符,出错则返回EOF。
4、 错误处理函数
(1) clearerr() 函数
函数声明:void clearerr (FILE *stream)
功能:把stream指向的文件的出错标记重新设置为零。
(2) eof () 函数
函数声明:int eof ( int fd ) 该原型在io.h中
功能:检查文件是否结束。如果文件结束,返回1,否则返回0。
(3) ferror() 函数
函数声明:int ferror ( FILE *stream)
功能:检测stream所指定的流文件错误。如果没有错误,返回0,否则返回非零值。
(4) ferror () 函数
函数声明:void perror( char *str)
功能:将表示错误的全程变量errno的值映像到一个字符串中,并把该字符串写入stderr中。如果str的值不为0,就写出该串,其后是冒号":",然后是errno值所确定的适当的错误信息。
四 日期和时间函数
涉及系统时间和日期的函数需要头文件time.h来定义它们的原型,该头文件还定义了两个类型:time_t可以作为一个长整数型数来代表系统的时间和日期;结构类型tm则装有分离的日期和时间元素。Turbo C还包含一些非标准的时间和日期函数,与DOS有着密切的联系,这些函数在dos.h中定义,使用time和date类型的结构。
(1) asctime() 函数
函数声明:char *asctime ( struct tm *ptr )
功能:函数返回指向一个字符串的指针。由ptr所指向的结构中的时间信息被转换成下面这种字符格式:
星期 月 日 小时:分:秒 年\n\0
如:Sun Sep 28 16:23:18 2003
(2) clock () 函数
函数声明:long clock ( void )
功能:该函数用来确定两个事件之间的间隔时间。把该值除以CLK_TCK(在time.h中定义,值为18.2)就转化为秒值。
(3) ctime () 函数
函数声明:char *ctime ( time_t *time )
功能:把参数time转换成一个下列形式的字符串,并以换行符合空字符作为结束符:
星期 月 日 小时:分:秒 年\n\0
(4) difftime() 函数
函数声明:double difftime (time_t time2, time_t time1)
功能:该函数用来计算从time1到time2所经过的时间,用秒表示。
(5) getdate () 函数
函数声明: void getdate ( struct date *d )
原型在dos.h中
功能:把DOS形式的系统当前日期填入由d指向的结构date中。
(6) gettime () 函数
函数声明: void gettime ( struct time *t )
原型在 dos.h中
功能:把DOS形式的系统当前时间填入由t指向的结构time中。
(7) setdate () 函数
函数声明:void setdate ( struct date * d )
原型在 dos.h中
功能:按照d指向的结构中指定的值设置DOS系统时间。
(8) settime () 函数
函数声明: void settime ( struct time *t )
原型在 dos.h中
功能:按照t指向的结构中指定的值设置DOS系统日期。
(9) time () 函数
函数声明:time_t time ( time_t *timer )
功能:函数返回机器的当前时间值。
五 动态地址分配
ANSI标准规定,该标准定义的动态地址分配函数所需的信息包含在头文件stdlib.h中。而Turbo C 允许使用stdlib.h或alloc.h。常用的动态存储分配的函数有以下几个:
(1) calloc() 函数
函数声明: void *calloc ( unsigned num, unsigned size )
该函数原型在stdlib.h和alloc.h中
功能:分配num个大小为size的数据项的内存连续空间。函数返回内存单元的起始地址。如不成功,就返回一个空指针。
(2) free() 函数
函数声明: void free ( void *ptr )
该函数原型在stdlib.h中
功能:释放由ptr所指的内存空间,并将它返回给堆,以便这些内存成为再分配的时的可用内存。
(3) malloc() 函数
函数声明:void *malloc ( unsigned size)
该函数原型在stdlib.h和alloc.h中
功能:分配size字节的存储区。函数返回所分配的内存区的起始地址。如内存不够,返回0。在使用指针前建议测试返回值不为空指针,否则会引起系统毁坏。
(4) realloc() 函数
函数声明: void realloc ( void *ptr, unsigned newsize )
该函数的原型在stdlib.h和alloc.h中
功能:将ptr所指的已分配内存区的大小改写为neewsize。newsize值可以大于或小于原先值。函数返回指向该内存区的指针。
六 字符屏幕和图形功能函数
在ANSI标准中没有定义任何字符屏幕函数或图形功能函数,主要是因为计算机的种类太多,各式各样的硬件环境能力的差异,阻碍了标准化。但Turbo C提供了PC环境下扩充的屏幕和图形支持系统。
关于字符屏幕处理函数的原型在conio.h中,图形系统的有关信息和原型在graphics.h中。
有关颜色的定义见表1。
表1. 有关颜色的定义
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
符号常数 数值 颜色 符号常数 数值 颜色
──────────────────────────────────────────
BLACK 0 黑 DARKGRAY 8 深灰
BLUE 1 兰 LIGHTBLUE 9 淡兰
GREEN 2 绿 LIGHTGREEN 10 淡绿
CYAN 3 青 LIGHTCYAN 11 淡青
RED 4 红 LIGHTRED 12 淡红
MAGENTA 5 洋红 LIGHTMAGENTA 13 淡洋红
BROWN 6 棕 YELLOW 14 黄
LIGHTGRAY 7 淡灰 WHITE 15 白
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
(一) 字符屏幕函数(conio.h)
1、 文本方式的控制函数
(1) highvideo () 函数
函数声明:void highvideo ( void )
功能:该函数用于设置用高亮度显示字符。
(2) lowvideo () 函数
函数声明:void lowvideo ( void )
功能:该函数用于设置用低亮度显示字符。
(3) normvideo () 函数
函数声明:void normvideo ( void )
功能:该函数用于设置通常亮度显示字符。
(4) textattr () 函数
函数声明:void textattr ( int attr )
功能:该函数用于设置文本显示的属性,即字符显示的颜色、背景色、字符显示
是否闪烁等。attr可用一个字节来描述,各位含义如下:
闪烁 背景色 字符颜色
(5) textbackground () 函数
函数声明:void textbackgroud ( int color )
功能:该函数用于设置字符屏幕的背景色。有效颜色为表1中的前7种。
(6) textcolor () 函数
函数声明:void textcolor ( int color )
功能:该函数用于设置字符屏幕的字符颜色,也可用于指定字符闪烁。color的
有效值为表1中的所有颜色及 BLINK (闪烁) 128。
(7) textmode () 函数
函数声明:void textmode ( int mode )
功能:该函数用来改变字符屏幕的屏显模式。
2、 窗口设置函数
window () 函数
函数声明:void window ( int left, int top, int right, int bottom )
功能:用于建立矩形字符窗口,其左上角和右下角坐标分别由left,top和right,bottom来表示。如果其中有一个坐标无效,则该函数不起作用。一旦调用成功,所有的定位坐标都是相对于窗口,而不是屏幕。
3、 清屏和光标操作函数
(1) clreol () 函数
函数声明:void clreol ( void )
功能:清除当前字符窗口中,从当前光标位置到该行结束的所有字符,光标位置
保持不变。
(2) clrscr () 函数
函数声明:void clrscr ( void )
功能:清除整个当前字符窗口,并把光标定位在左上角(1,1)上。
(3) delline () 函数
函数声明:void delline ( void )
功能:该函数删除活动窗口内光标所在行,并将以下各行上移一行。
(4) gotoxy () 函数
函数声明:void gotoxy (int x, int y )
功能:该函数把字符屏幕上的光标移动到由(x,y)指定的位置上。
4、 文本输出函数
(1) cprintf () 函数
函数声明:int cprintf ( char *format [,argument,……])
功能:该函数是将按格式化串定义的字符串或数据输出到定义的窗口中。其输出
格式同printf相同。
(2) cputs () 函数
函数声明:int cputs ( const char * str )
功能:该函数把由str所指向的字符串输出到当前字符窗口。不能改变方向,并
会自动防止字符输出到窗口外面。操作成功,返回最后一个写入的字符;
否则返回EOF。
5、 屏幕文本移动与存取函数
(1) gettext () 函数
函数声明:int gettext ( int left, int top, int right, int bottom, void * buf )
功能:该函数把左上角为(left,top),右上角为(right,bottom)的矩形区内的文本存
到由指针buf所指向的内存中。
(2) puttext () 函数
函数声明:int puttext ( int left, int top, int right, int bottom, void *buf )
功能:该函数把先前由gettext()存储到buf所指向的内存中的字符拷贝到左上角
为(left,top),右上角为(right,bottom)的矩形区内。
(3) movetext () 函数
函数声明:int movetext ( int left, int top, int right, int bottom, int newleft, int newtop )
功能:该函数把左上角为(left,top),右上角为(right,bottom)的字符屏幕块的内容
移动到左上角坐标为(newleft,newtop)。
6、 状态查询函数
(1) gettextinfo () 函数
函数声明:void gettextinfo ( struct text_info *r )
功能:该函数将当前文本模式的视频信息填入由r所指的text_info结构中。
text_info在conio.h中定义。
(2) wherex () 函数
函数声明:int wherex ( void )
功能:该函数返回当前窗口下光标的x坐标。
(3) wherey () 函数
函数声明:int wherey ( void )
功能:该函数返回当前窗口下光标的y坐标。
(二) 图形函数 ( graphics.h )
1、 图形系统的初始化函数
(1) cleardevice () 函数
函数声明:void far cleardevice ( void )
功能:该函数清除屏幕,并把当前光标位置重新设置为(0,0)。该函数仅用于图形
屏幕模式。
(2) closegraph () 函数
函数声明:void far closegraph ( void )
功能:该函数使图形状态失败,并释放用于保存图形驱动器和字体的系统内存。
(3) initgraph () 函数
函数声明:void far initgraph ( int far * driver, int far * mode, char far *path )
功能:该函数用于初始化图形系统,并装入相应的图形驱动器。
(4) restorecrtmode () 函数
函数声明:void far restorecrtmode ( void )
功能:该函数用于恢复屏幕模式为调用inigraph()前的模式。
2、 画点函数
(1) getpixel () 函数
函数声明:int far getpixel ( int x,int y )
功能:函数返回指定点(x,y)上的象素颜色。可用该函数存取屏幕上某一点的颜色
值。
(2) putpixel () 函数
函数声明:void far putpixel (int x, int y, int color);
功能:将color所指定的颜色写到(x,y)处的象素上。
3、 有关画图坐标位置的函数
(1) getmaxx () 函数
函数声明:int far getmaxx ( void )
功能:函数返回当前图形模式下最大的有效的x值。
(2) getmaxy () 函数
函数声明:int far getmaxy ( void )
功能:函数返回当前图形模式下最大的有效的y值。
(3) getx () 函数
函数声明:int far getx ( void )
功能:得到当前位置的x值。
(4) gety () 函数
函数声明:int far gety( void )
功能:得到当前位置的y值。
(5) moveto () 函数
函数声明:void far moveto ( int x, int y )
功能:把当前视口的当前位置(cp)移动到指定的(x,y)位置。
(6) moverel () 函数
函数声明:void far moverel ( int deltax, int deltay )
功能:在x,y方向移动当前位置(cp),移动距离分别为deltax,deltay。
4、 画线函数
(1) line () 函数
函数声明:void far line ( int startx,int starty,int endx,int endy )
功能:用当前画线颜色从(startx,starty)点到(endx,endy)点画一条直线。当前位置不变。
(2) lineto () 函数
函数声明:void far lineto ( int x,int y )
功能:用当前画线颜色,从当前位置(cp)到点(x,y)画一条线,且把cp定位在(x,y)上。
(3) linerel () 函数
函数声明:void far linerel ( int delta x, int delta y )
功能:用当前画线颜色从cp(x,y)位置到位置增量处(x+deltax,y+deltay)画一条线。
且把cp定位在新的位置上。
5、 画矩形和条形图函数
(1) bar () 函数
函数声明:void far bar ( int left, int top, int right, int bottom )
功能:该函数以(left,top)为左上角,(right,bottom)为右上角画一个实形矩形条。由当前填充模式和颜色填充。
(2) bar3d () 函数
函数声明:void far bar3d (int left, int top, int right, int bottom,int depth,int topflag)
功能:该函数除了产生一个以depth为象素的三维条形以外,其他与bar()函数一
样。参数topflag决定是否在条形图上放一个三维的顶,如果topflag不为
零,则放上一个顶盖,否则为无盖的。
(3) rectangle () 函数
函数声明:void far rectangle ( int left,int top,int right,int bottom )
功能:用当前画线颜色画出由坐标(left,top)和(right,bottom)所定义的矩形。
6、 画椭圆、园、多边形和扇形图函数
(1) arc () 函数
函数声明:void far arc ( int x, int y, int start, int end, int radius )
功能:以radius为半径,以(x,y)为圆心,以start为起始角,end为终止角逆时针
方向画一弧线。角度的单位是度,颜色取决于当前画线颜色。
(2) circle () 函数
函数声明:void far circle ( int x, int y, int radius )
功能:该函数以(x,y)为圆心,radius为半径,用当前画线颜色画一个圆。
(3) drawploy () 函数
函数声明:void far drawpoly ( int numpoints, int far *point )
功能:该函数用当前画线颜色画一个多边形。顶点数等于numpoints。piont用来
存储顶点坐标,x坐标在前。n个顶点,必须定义n+1个点,第0个和第n
个顶点的坐标相同。
(4) ellipse () 函数
函数声明:void far ellipse ( int x, int y, int start, int end, int xradius, int yradius )
功能:该函数以(x,y)为中心,x轴、y轴的半径由xradius和yradius指定。Start
为椭圆的起始角,end为终止角,都以度表示。颜色由当前画线颜色决定。
(5) fillellipse () 函数
函数声明: void far fillellipse ( int x, int y,int xradius, int yradius )
功能:该函数以(x,y)为中心,以xradius和yradius为水平轴半径和垂直轴半径,
画一填充椭圆。用当前的填充颜色和格式填充,用当前的画线颜色画椭
圆边线。
(6) fillpoly () 函数
函数声明: void far fillpoly ( int numpoints, int far *point )
功能:该函数用当前画线颜色画一个多边形。然后用当前填充模式和颜色对该多边形进行填充。顶点数等于numpoints。piont用来存储顶点坐标,x坐标在前。n个顶点,必须定义n+1个点,第0个和第n
个顶点的坐标相同。
(7) pieslice () 函数
函数声明:void far pieslice ( int x, int y, int start, int end, int radius )
功能:该函数以(x,y)为圆心,radius为半径,以start和end为起始角和终止角,
以当前颜色画一个扇形,并以当前的填充模式和颜色进行填充。start和end用度表示。
(8) sector () 函数
函数声明:void far sector (int x,int y, int stangle, int endangle, int xradius, int yradius)
功能:该函数以(x,y)为中心,以xradius和yradius为水平轴半径和垂直轴半径,以stangle为起始角,endangle为终止角画一扇区。画线颜色用当前画线颜色,扇区的填充模式和颜色用setfillstyle和setfillpattern定义。使用的角方向为逆时针方向。
7、 颜色控制函数
(1) getpalette () 函数
函数声明:void far getpalette (struct palettetype far *pal )
功能:该函数将当前调色板的值装入由pal所指向的结构中去。palettetype结构
定义如下:
# define MAXCOLORS 16
struct palettetype
{ unsigned char size;
signed char colors [MAXCOLORS+1];
};
size存放当前调色板的可用颜色数。
(2) getpalettesize () 函数
函数声明:int far getpalettesize ( void )
功能:该函数得到当前图形驱动器模式允许的调色板入口数目。
(3) setallpalette () 函数
函数声明:void far setallpalette ( struct palettetype far *pal )
功能:该函数改变某个EGA/VGA调色板上的所有颜色。
(4) setbkcolor () 函数
函数声明:void far setbkcolor ( int color )
功能:该函数把背景色改为由color指定的颜色。具体值见上面的表1。
(5) setcolor () 函数
函数声明:void far color ( int color )
功能:该函数把当前的画线颜色设置为color指定的颜色。每个图形显示卡的有
效由setpalette ()提供。
(6) setpalette () 函数
函数声明:void far setpalette (int index, int color )
功能:该函数用于改变由屏幕系统所显示的颜色。CGA模式只有背景色可以
改变。EGA可以在64种不同颜色中同时显示出16种颜色。
8、 画线的线型函数
(1) getlinesettings () 函数
函数声明:void far getlinesettings ( struct linesettingstype far * info )
功能:该函数用当前画线模式填写由info所指向的结构。结构linesettingstype所示如下:
struct linesettingstype{
int linestyle;
unsigned upattern;
int thickness;
};
其中linestyle存放画线模式,在graphics.h中定义。取值和含义如下:
━━━━━━━━━━━━━━━━━━━━
符号常数 数值 含义
───────────────────────────────
SOLID_LINE 0 实线
DOTTED_LINE 1 点线
CENTER_LINE 2 中心线
DASHED_LINE 3 点画线
USERBIT_LINE 4 用户定义线
━━━━━━━━━━━━━━━━━━━━
thickness 是线的宽度,见下表。
━━━━━━━━━━━━━━━━━━━━
符号常数 数值 含义
────────────────────────────────
NORM_WIDTH 1 一个象素宽
THIC_WIDTH 3 三个象素宽
━━━━━━━━━━━━━━━━━━━━
(2) setlinestyle () 函数
函数声明:void far setlinestyle ( int style, unsigned pattern, int width )
功能:该函数确定所有画线图形函数的画线方式。style保存画线的格式,参见
上面linestyle的说明。width相当于上面的thickness。只有当style为
USERBIT_LINE时,pattern的值才有意义。
9、 封闭图形的填色函数
(1) floodfill () 函数
函数声明:void far floodfill ( int x, int y, int border )
功能:该函数用图形块中任意给定的点和形状块边界线的当前填充颜色和模式,
来填充该图形块。必须确保要填充的区域是完全封闭的。由border指出
的颜色必须与封闭图形的轮廓线的颜色一致。
(2) getfillpattern () 函数
函数声明:void far getfillpattern ( char far *pattern )
功能:该函数将用户自定义的填充模式和颜色存入pattern指向的内存区域中。
(3) getfillsettings () 函数
函数声明:void far getfillsettings (struct fillsettingstype far *info )
功能:该函数将得到的当前的填充模式和颜色放到由info指向的结构中去。
struct fillsettingstype {
int pattern;
int color;
};
pattern的取值和含义如下:
━━━━━━━━━━━━━━━━━━━━
符号常数 数值 含义
────────────────────────────────
EMPTY_FILL 0 用背景色填充
SOLID_FILL 1 实填充
LINE_FILL 2 用线“—”填充
LTSLASH_FILL 3 用斜杠填充
SLASH_FILL 4 用粗斜杠填充
BKSLASH_FILL 5 用粗反斜杠填充
LTBKSLAH_FILL 6 用反斜杠填充
HATCH_FILL 7 用网格线填充
XHATCH_FILL 8 用斜网格线填充
INTERLEAVE_FILL 9 用间隔点填充
WIDE_DOT_FILL 10 用稀疏点填充
CLOSE_DOT_FILL 11 用密集点填充
USER_FILL 12 用户定义的填充模式
━━━━━━━━━━━━━━━━━━━━
(4) setfillpattern () 函数
函数声明:void far setfillpattern ( char far *pattern, int color )
功能:该函数设置用户自定义可填充模式,以color指出的颜色对封闭图形进行
填充。
(5) setfillstyle () 函数
函数声明:void far setfillstyle ( int pattern, int color )
功能:该函数为各种图形函数设置填充的模式和颜色。color为当前屏幕模式的
有效值。pattern的值和含义见上表。
10、 屏幕操作函数
(1) getimage () 函数
函数声明:void far getimage ( int left, int top, int right, int bottom, void far *buf )
功能:该函数把屏幕图形部分拷贝到由buf所指向的内存区域中,图形的左上角用(left,top)表示,右下角用(right,bottom)表示。
(2) imagesize () 函数
函数声明:unsigned far imagesize (int left, int top, int right, int bottom )
功能:该函数返回存储一块屏幕图像所需要的存储字节数。图形的左上角用
(left,top)表示,右下角用(right,bottom)表示。
(3) putimage () 函数
函数声明:void far putimage ( int x, int y, void far *buf, int op )
功能:该函数把一个先前储存的图像拷贝到(x,y)的屏幕上。op的值决定了图像
以什么方式写到屏幕上。op的取值和含义如下:
━━━━━━━━━━━━━━━━━━━━━━━━━━
符号常数 数值 含 义
──────────────────────────
COPY_PUT 0 复制
XOR_PUT 1 与屏幕图像异或的复制
OR_PUT 2 与屏幕图像或后复制
AND_PUT 3 与屏幕图像与后复制
NOT_PUT 4 复制反像的图形
━━━━━━━━━━━━━━━━━━━━━━━━━━
(4) setactivepage () 函数
函数声明:void far setactivepage ( int page )
功能:该函数设置由page指出的页为激活页。
(5) setvisualpage () 函数
函数声明:void far setvisualpage ( int page )
功能:该函数设置由page指出的页为可显示的页。
11、 图形操作函数
(1) clearviewport () 函数
函数声明:void far clearviewport ( void )
功能:清除当前视口,并把光标位置设置为(0,0)。
(2) getviewsettings () 函数
函数声明:void far getviewsettings ( struct viewporttype far *info )
功能:该函数把有关当前视口的信息装入由info所指向的结构中。
viewporttype结构定义如下:
struct viewporttupe{
int left,top,right,bottom;
int clip;};
当clip为0时,不做对超出视口边界输出的剪裁。否则,执行剪裁以防止
超出边界。
(3) setviewport () 函数
函数声明:void far setviewport ( int left,int top,int right,int bottom,int clip )
功能:该函数建立一个新的视口,左上角坐标为(left, top),右下角坐标为
(right , bottom)。
12、 图形模式下的文本输出函数
(1) outtext () 函数
函数声明:void far outtext ( char far *str )
功能:该函数用于设置(方向、字体、大小、对齐方式),在图形模式下,在当
前位置处显示一个字符串。
(2) outtextxy () 函数
函数声明:void far outtextxy ( int x,int y,char *str )
功能:该函数在指定的(x,y)位置输出字符串,(x,y)位置的确定由settextjustify()
来确定。
(3) sprintf () 函数
函数声明:int sprintf ( char *string,char *format,[,argument] )
功能:该函数把变量值argument,…按format指定的格式,输出到由指针string
指定的字符串中。
(4) settextjustify () 函数
函数声明:void far settextjustify ( int horiz, int vert )
功能:该函数设置与当前有关的字符排列方式。
有关参数horiz和vert的取值参见下表。
参数horiz和vert的取值
━━━━━━━━━━━━━━━━━━━━━━━━
符号常数 数值 用于
────────────────────────
LEFT_TEXT 0 水平
RIGHT_TEXT 2 水平
BOTTOM_TEXT 0 垂直
TOP_TEXT 2 垂直
CENTER_TEXT 1 水平或垂直
━━━━━━━━━━━━━━━━━━━━━━━━
(5) settextstyle () 函数
函数声明:void far settextstyle ( int font, int direction, int size )
功能:该函数为图形字符输出函数设置当前字体,同时设置方向和字符大小。
Turbo C2.0对函数中各个参数的规定见下列各表所示:
font的取值
━━━━━━━━━━━━━━━━━━━━━━━━
符号常数 数值 含义
────────────────────────
DEFAULT_FONT 0 8*8点阵字(缺省值)
TRIPLEX_FONT 1 三倍笔划字体
SMALL_FONT 2 小号笔划字体
SANSSERIF_FONT 3 无衬线笔划字体
GOTHIC_FONT 4 黑体笔划字
━━━━━━━━━━━━━━━━━━━━━━━━
direction的取值
━━━━━━━━━━━━━━━━━━━━━━━━
符号常数 数值 含义
────────────────────────
HORIZ_DIR 0 从左到右
VERT_DIR 1 从底到顶
━━━━━━━━━━━━━━━━━━━━━━━━
charsize的取值
━━━━━━━━━━━━━━━━━━━━━━━━
符号常数或数值 含义
────────────────────────
1 8*8点阵
2 16*16点阵
3 24*24点阵
4 32*32点阵
5 40*40点阵
6 48*48点阵
7 56*56点阵
8 64*64点阵
9 72*72点阵
10 80*80点阵
USER_CHAR_SIZE=0 用户定义的字符大小
━━━━━━━━━━━━━━━━━━━━━━━━
七 其他函数(stdlib.h)
1、 字符串转换函数
(1) atoi () 函数
函数声明:int atoi(char *str)
功能:将字符串str转换成一个整数值。
(2) atol () 函数
函数声明:long atol(char *str)
功能:将字符串str转换成一个长整数。函数返回转换后的数值。
2、 伪随机序列产生函数
(1) rand () 函数
函数声明:int rand(void)
功能:函数返回一个随机数(0到RAND_MAX(0x7fff)之间)。
(2) srand () 函数
函数声明:void srand(unsigned seed)
功能:该函数和rand函数配合使用,产生随机数的起始发生数据。
3、 环境通信函数
(1) atexit () 函数
函数声明:int atexit(atexit_t fun)
功能:设定程序中止后的调用函数为fun。成功返回0,否则返回非零数。
(2) exit () 函数
函数声明:void exit(int state)
原型在process.h中
功能:程序中止执行,返回调用过程。State为0,表示正常中止;非0,表示非正常中止。
(3) getenv () 函数
函数声明:char *getenv (const char *name)
功能:函数返回一个指向环境变量的指针。
(4) system () 函数
函数声明:int system(const char *command)
功能:调用DOS命令,程序挂起,临时执行一个其他程序。
4、 搜索和排序工具函数
(1) qsort () 函数
函数声明:void qsort(void *base, size_t melem, size_t width, int (*fcmp)(const void *, const void *)
功能:使用快速排序(C.A.R.Hoare发明的排序方法)对数组base进行排序。
base: 待排序的数组;
melem:数组的元素个数;
width:每个元素的大小;
fcmp: 用于数组元素比较的函数指针,该函数由自己另外编写,有2个参数。
TC2.0库函数清单相关推荐
- 《珍藏TC2.0》: TCC.exe,TLink.exe,TLib.exe 命令行选项及其使用!
在开始看本文以前,我先说明一下C语言的安装和使用中最应该注意的地方: 许多网友在下载Turbo C 2.0和Turbo C++ 3.0后,向我问得最多的是在使用过程中碰到如下问题: 1)出现找不到 ...
- Tc3.0/Tc2.0使用方法
2007-09-02 15:35 Turbo C 2.0/3.0(TC2.0/2.0)设置详解 对于初学程序设计的人来说Turbo C 2.0无疑是最简单最理想的入门语言环境之一,但也常由于环境变量设 ...
- 【C语言】TC2.0环境-带图形库
目录 1. 下载 2. 编译一个图形程序 2.1. 解压 2.2. 打开虚拟DOS 2.3. 设置盘映射到DOSbox中 2.4. 进入TC2.0安装目录 2.5. 打开源代码 2.6. 设置TC.E ...
- Tc2.0编写俄罗斯方块游戏
Tc2.0编写俄罗斯方块游戏 作者:陈畅 联系地址:上海财经大学图书馆 电子邮件:shufechenchang@263.net 个人主页:http://shchenchang.top263.net/ ...
- 鸿蒙手机升级清单,华为鸿蒙OS 2.0升级清单曝光,来看看有没有你的手机
原标题:华为鸿蒙OS 2.0升级清单曝光,来看看有没有你的手机 近日,华为多位高层确认,华为鸿蒙OS 2.0版本开发工作进展顺利,产品研发部分已经就绪.与华为之前的预告一样,华为将会在12月份如期推出 ...
- 华为公布鸿蒙2.0内测清单,华为鸿蒙操作系统2.0版支持的设备清单流出,荣耀30s...
速来围观:华为鸿蒙操作系统2.0版支持的设备清单流出 万物云联网 15小时前 华为消费者商务软件事业部总裁王成禄博士透露,用于移动版Harmony OS(鸿蒙操作系统) 2.0的开发工作进展顺利,研发 ...
- 华为公布鸿蒙2.0内测清单,华为鸿蒙2.0支持设备清单曝光,华为P50系列也在其中...
今年上半年,华为正式发布了鸿蒙2.0系统,并且将会在今年年底,逐步向各个终端产品开放.其实,鸿蒙系统早在刚刚发布时,就备受用户和市场的关注.但是,其一直都未曾对外公布具体的应用时间.导致很多用户认为, ...
- 华为鸿蒙os可升级手机,华为鸿蒙OS 2.0升级清单曝光,来看看有没有你的手机
近日,华为多位高层确认,华为鸿蒙OS 2.0版本开发工作进展顺利,产品研发部分已经就绪.与华为之前的预告一样,华为将会在12月份如期推出鸿蒙OS系统的手机beta版,最快下个月就可以使用到鸿蒙OS手机 ...
- 华为x10max什么时候升级鸿蒙,网传华为鸿蒙 OS 2.0 升级清单曝光,来看看有没有你的...
近日,华为多位高层确认,华为鸿蒙 OS 2.0 版本开发工作进展顺利,产品研发部分已经就绪.与华为之前的预告一样,华为将会在 12 月份如期推出鸿蒙 OS 系统的手机 beta 版,最快下个月就可以使 ...
最新文章
- 2给我背书_让优秀的人做你的背书人
- VC++ 创建Windows服务
- Linux网络编程 | IO模型 :阻塞IO、非阻塞IO、信号驱动IO、异步IO、多路复用IO
- java 四则运算 栈的实现
- iOS开发 iOS10兼容访问http
- 【转】2.1 SharePoint服务器端对象模型 之 访问网站和列表数据(Part 1)
- eclipse导入项目中文乱码
- HDU 2552 A simple problem
- eclipse新建服务器项目,使用eclipse快速新建spirngboot项目的方法
- JAVA Eclipse创建Android程序界面不显示怎么办
- 二次开发Spark实现JDBC读取远程租户集群Hive数据并落地到本集群Hive的Hive2Hive数据集成【Java】
- 杂项工具WinHex
- 走进tensorflow第六步——拟合一元二次函数
- 几何Geometry(2)(曲线和曲面)(笔记)
- inter uhd graphics630显卡驱动_显卡检测工具 GPUZ v2.35.0 简体中文汉化版
- 关于跨境物流3种运输模式讲解
- 微信公众号开发之文本回复(三)
- Yolov5图像识别教程
- python中列表(list)的基本定义和用法
- nodejs(10):AntV,Viser 企业级可视化解决方案,蚂蚁金服开发的