欢迎来到天天文库
浏览记录
ID:43310129
大小:47.00 KB
页数:19页
时间:2019-10-08
《C语言标准库19》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、几个有关函数标准库还提供了另外一些与IO有关的函数。1)缓冲区冲刷函数fflush。原型:intfflush(FILE*stream)对输出流有定义。要求立即将缓冲区数据写入文件。本操作对输入流的作用在标准里没有定义。正常完成返回0,出错返回EOF。2)文件结束判断函数feof。其原型是:intfeof(FILE*stream)判断是否到达文件末尾。主要用于二进制文件,遇到文件结束时返回非0值。13)文件定位及定位函数文件可看作字节的序列,每个字节在序列中有一位置。可认为IO时有一个文件位置指示器。以读/写方式打
2、开时指示器设在文件开头,以附加方式打开指示器设在文件尾。指示器随读写操作自动后移,指向下次操作位置。为方便,标准库提供了直接操作文件指示器的函数:文件定位函数/指示器移动函数。最常用的三个:voidrewind(FILE*st)将流st的文件指示器重设到文件开始位置。longftell(FILE*st)返回流st当时指示器位置。出错返回-1L。2intfseek(FILE*st,longoffset,intorigin)设置流st的指示器,使随后IO操作在新位置进行。origin指定定位基准点,可能取值:SEEK
3、_SET以文件头作为定位的基准点SEEK_CUR以指示器的当前位置作为基准点SEEK_END以文件尾作为基准点正文流的移动操作有限制。对二进制流没限制,移动目标是以origin为基准点偏移offset的位置。3出错处理输出出错信息是希望显示到屏幕供人读。通过stdout不合适:输出定向到文件也使出错信息送到文件。送到标准错误流stderr的信息不受定向影响。改造前面程序cat,只需要改动一个语句:fprintf(stderr,"%s,can'topeninfile:%s",name,*argv);文件错误检查
4、:intferror(FILE*stream)IO出错时设置相关流的出错标志变量。ferror检查流的出错标志。当stream的状态变量设置时返回非0。错误标志复位(清除)函数voidclearerr(FILE*stream)4标准库错误处理:为检查程序执行中出错,库提供了一些机制。每个C系统定义了一组错误编号,0表示无错,其余值表示各种错误。一些函数出错时自动给状态变量errno设错误编号,还定义了相应的信息串。见。打印当时错误信息:voidperror(char*s)检查当时错误编号(per
5、ror调用之前的最近错误),把对应信息串送到stderr。输出形式:字符串s冒号错误信息串换行59.5标准库介绍标准库由一组库代码文件和一组头文件组成。代码文件内是标准函数的程序代码及相关数据(变量)。若程序调用标准函数,连接程序将从库代码文件提取函数代码,将其拼接到结果程序里,并完成调用连接。库代码文件里还附带了一些连接程序使用的信息。ANSIC的标准头文件是一组正文文件,提供库函数的使用信息。其中列出库函数原型,所用类型(如FILE)、符号常量(如EOF、NULL)和其他宏定义等。6在C程序里用标准库函数,只
6、需包含有关的头文件,这将保证程序对标准库函数的使用与其实际定义间的一致性。库代码文件通常很大,具体程序实际使用的库功能通常只是其中很少一部分。人们开发了这样的技术,在程序连接时不是把库代码文件整个装配到可执行文件里,而是根据实际需要,由库文件里提取出必要部分装配进程序里,以保证用户程序的紧凑性。79.5.1几个已经介绍过的头文件字符串函数():char*strchr(cs,c);char*strrchr(cs,c);查寻字符c在字符串cs里出现的位置(第一个,
7、或者最后一个)。cs表示constchar*(const字符串),s表示char*(字符数组),用c表示字符。8char*strpbrk(cs1,cs2);查寻cs2中的字符在cs1里第一次出现的位置。char*strstr(cs1,cs2);查寻cs2(子串)在cs1中出现的位置。成功时返回所确定位置的指针,失败返回空指针。size_tstrspn(cs1,cs2);cs1的所有字符都属于cs2的前缀的长度;size_tstrcspn(cs1,cs2);cs1的所有字符都不属于cs2的前缀的长度。“前缀”:字符
8、串开始的一段。9char*strtok(s,ct);是个比较复杂的函数。其基本功能是用于在字符数组s中标识出一段段字符,字符段之间原来由ct里的字符分隔(ct是分隔字符的数组)。另有一组存储块操作函数:复制memcpy、移动(允许重叠)memmove、比较memcmp、位置查找memchr、设置memset。109.5.2一些功能函数,随机数生成和动态
此文档下载收益归作者所有