C语言中常用的几个头文件及库函数
不完全统计,C语言标准库中的头文件有15个之多,所以我主要介绍常用的这四个头文件stdio.h,string.h,math.h,stdlib.h,以后用到其他的再做补充。下面上干货:
1.
(1)文件访问。
FILE*fopen(“filename”,“mode”):
以mode模式打开地址为'filename'的文件,并返回文件指针。
访问模式主要是“r”:只读; “w”:只写,并删除已有内容; “a”:追加,在末尾追加;
“r+”,“w+”:读写;“a+”追加,上述结尾加“b”:二进制文件操作。
注意:其中r是打开文件,而w会创建(如果文件不存在); w会覆盖原有内容,a则是在原有文件末尾追加。
intfclose(FILE*f):
释放缓冲区数据,关闭流。
下面两个没太用过:
FILE*freopen(“filename”,“mode”,FILE*f):
以mode模式打开地址为'filename'的文件,并将该文件与流f2关联。
intfflush(FILE*f):
将已写到缓冲区但未写入文件中的所有数据写入文件中。
(2)二进制输入/输出
fread(*ptr,size,n,FILE*f):
从f中读取n个长度为size的对象,并放入ptr指向的数组中。
fwrite(*ptr,size,n,FILE*f):
从ptr指向数组中读取n个长度为size的对象,并写入f中。
注意:要注意write与read的对象,读和写都是针对文件流f的。
(3)非格式化输入/输出
intfgetc/getc(FILE*f):
返回流f的下一个字符,到达文件末尾/发生错误,则返回EOF。
intfputc/putc(intc,FILE*f)
将字符c输入到流f中。
intfgets(char*s,intn,FILE*f):
将f中下n-1个字符读入到数组s中。遇到换行符,则终止。
intfputs(constchar*s,FILE*f):
将字符串s输出到流中。
intunget(intc,FILE*f)
将c写回到f中。
(4)格式化输入/输出
按一定格式转输出。
scanf/fscanf/sscanf printf/fprintf/sprintf
注意:不加f/s,则是格式字符串标准输入/出函数,输入/出到终端/屏幕;printf(constchar*format,...)
加s,输入/出到字符串中。sprintf(char*s,constchar*format,...)
加f,输入/出到文件流中。 fprintf(FILE*f,constchar*format,...)
(5)文件定位
longftell(FILE*f):
返回当前指针位置。错误时返回-1L。
intfseek(FILE*f,longoffset,intorigin):
将当前流f指针位置设置到:origin后offset个字符处。origin有:SEEK_SET:文件起始位置;SEEK_CUR指针当前位置,SEEK_END:文件结束位置。
voidrewind(FILE*f)
指针返回文件开始位置,相当于:fseek(f,0L,SEEK_SET)
不常用:
intfgetpos(FILE*f,*p)
将指针当前位置记录到*p中,以供fsetpos函数使用。
intfsetpos(FILE*f,const*p)
指针位置指向*p。
(6)错误处理与文件操作
intfeof(FILE*f)
指示文件结束,一直返回0,结束时返回非0值。
intferror(FILE*f)
如果设置了与f相关的错误指示符,则返回一个非0值。
intremove(char*filename)
删除指定位置的文件。
intrename(constchar*oldname,constchar*newname)
改文件名,否则返回非0值。
FILE*tmpfile(void)
建立临时文件,‘wb+'模式,在被关闭或程序正常结束时自动删除
2.
(1)str
char*strcpy(char*dest,constchar*src);
将字符串src复制到字符串dest中(包括'\0'),返回dest
char*strncpy(char*dest,constchar*src,n);
将src中的前n个字符复制到dest中,返回dest,不够n个则补‘\0'
char*strcat(char*dest,constchar*src); char*strncat(char*dest,constchar*src,n);
src连接到dest后;src中前n个字符连接到dest后。
intstrcmp(constchar*s1,constchar*s2); intstrncmp(constchar*s1,constchar*s2,n);比较s1与s2,s1不常见size_t strcspn(constchar*s1,constchar*s2);char*strdup(constchar*s);char*strerror(interrnum);
(2)mem
void*memcpy(void*s,constvoid*ct,n)将字符串ct中的前n个字符拷贝到s中,并返回s。
void*memmove(s,ct,n)同上一函数,只是在对象重叠时仍能正确执行。 void*memset(void*s,intc,n)将s中的前n个字符替换成c,并返回s。
intmemcmp(cs,ct,n)将cs前n个字符与ct进行比较,cs
void*memchr(cs,c,n)返回指向c在cs中第一次出现的位置指针。
3.
一些数学函数 求绝对值
intabs(intx); longlabs(longx); floatfabs(floatx):所有返回值均为double,三角函数角度用弧度表示,x,y均为double
doubleacos(x); doubleasin(x); doubleatan(x); doubleatan2(y,x):arctan(y/x) doubletan(x); doubletanh(x):双曲正切 doublesin(x); doublesinh(x); doublecos(x); doublecosh(x); doublepow(x,y);//注意返回值类型为双精度型 doublesqrt(x); doubleceil(x):不小于x的最小整型数(向上取整) doublefloor(x):不大于x的最大整型数(向下取整) doubleexp(x); doublefabs(x); doublelog(x):ln(x) doublelog10(x); doublefmod(x,y):x/y的余数 doubleldexp(x,n):x*2^n doublemodf(x,double*ip):将x分成整数与小数两部分,返回小数部分,整数部分放在*ip中 doublefrexp(x,int*exp);将x分成(0.5,1)之间的一个真分数和一个2的幂数,返回真分数,幂数放在exp中4.
数值转换、内存分配等问题。 intrand(void)产生一个0~32767之间的随机整数。
指针名=(数据类型 *)calloc(n,size)
分配n个长度为size的连续空间,并且将所有元素置零,返回首地址。
指针名=(数据类型 *)malloc(n*size)
分配n*size个字节的内存,并返回首地址。
指针名p1=(数据类型 *)realloc(要改变内存大小的指针名p2,新的大小n)
分配长度为n字节的空间,将p2值赋值到该内存中,返回首地址到p1.(改变p1指向地址的内存大小)
voidfree(*p)释放p指向的内存(p为malloc,realloc,calloc所开辟的内存)
voidabort(void)使程序非正常终止。
voidexit(intstatus)使程序正常终止。
总结
以上所述是小编给大家介绍的C语言中常用的几个头文件及库函数,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。