C语言标准库

  • 格式:ppt
  • 大小:32.00 KB
  • 文档页数:19

下载文档原格式

  / 19
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

div_t div(int n, int m)
ldiv_t ldiv(long n, long m) 将n/m的商和余数存入结果结构的对应成员
div_t和ldiv_t是预定义结构类型,的成分是
int或者long的的quot和rem。
.
11
数值转换
从数字字符串构造各种数值类型的值:
double atof(const char *s) 由串s构造一个双精度值
其他宏定义等。
.
6
在C程序里用标准库函数,只需包含有关的头文 件,这将保证程序对标准库函数的使用与其实际 定义间的一致性。
库代码文件通常很大,具体程序实际使用的库功 能通常只是其中很少一部分。
人们开发了这样的技术,在程序连接时不是把库 代码文件整个装配到可执行文件里,而是根据实 际需要,由库文件里提取出必要部分装配进程序 里,以保证用户程序的紧凑性。
int feof(FILE *stream) 判断是否到达文件末尾。主要Biblioteka Baidu于二进制文件,遇到文 件结束时返回非0值。
.
1
3)文件定位及定位函数
文件可看作字节的序列,每个字节在序列中有一位置。 可认为IO时有一个文件位置指示器。
以读/写方式打开时指示器设在文件开头,以附加方式 打开指示器设在文件尾。指示器随读写操作自动后移, 指向下次操作位置。
几个有关函数
标准库还提供了另外一些与IO有关的函数。 1)缓冲区冲刷函数fflush。原型:
int fflush(FILE *stream) 对输出流有定义。要求立即将缓冲区数据写入文件。本 操作对输入流的作用在标准里没有定义。正常完成返回 0,出错返回EOF。 2)文件结束判断函数feof。其原型是:
每个C系统定义了一组错误编号,0表示无错,其余值 表示各种错误。
一些函数出错时自动给状态变量errno设错误编号,还 定义了相应的信息串。见<errno.h>。
• 打印当时错误信息: void perror(char *s)
检查当时错误编号(perror调用之前的最近错误), 把对应信息串送到stderr。输出形式:
size_t strcspn(cs1, cs2); cs1的所有字符都不属于cs2的前缀的长度。 “前缀”:字符串开始的一段。
.
9
char* strtok(s,ct); 是个比较复杂的函数。其基本功能是用于在字符 数组s中标识出一段段字符,字符段之间原来由 ct里的字符分隔(ct是分隔字符的数组)。
字符串s 冒号 错误信息串 换行
.
5
9.5 标准库介绍
标准库由一组库代码文件和一组头文件组成。
代码文件内是标准函数的程序代码及相关数据 (变量)。若程序调用标准函数,连接程序将从 库代码文件提取函数代码,将其拼接到结果程序 里,并完成调用连接。库代码文件里还附带了一 些连接程序使用的信息。
ANSI C的标准头文件是一组正文文件,提供库 函数的使用信息。其中列出库函数原型,所用类 型(如FILE)、符号常量(如EOF、NULL)和
int atoi(const char *s) 由串s构造一个整数值
long atol(const char *s) 由串s构造一个长整数值
.
12
执行控制。几个有关程序执行结束的函数:
void abort(void) 程序立即非正常终止。
.
7
9.5.1 几个已经介绍过的头文件
<math.h> <ctype.h>
字符串函数(<string.h>):
char* strchr(cs, c);
char* strrchr(cs, c);
查寻字符c在字符串cs里出现的位置(第一个, 或者最后一个)。
cs表示const char*(const字符串),s表
int origin)
设 置 流 st 的 指 示 器 , 使 随 后 IO 操 作 在 新 位 置 进 行 。 origin指定定位基准点,可能取值:
SEEK_SET 以文件头作为定位的基准点 SEEK_CUR 以指示器的当前位置作为基准点 SEEK_END 以文件尾作为基准点
正文流的移动操作有限制。对二进制流没限制,移动目 标是以origin为基准点偏移offset的位置。
为方便,标准库提供了直接操作文件指示器的函数:文 件定位函数/指示器移动函数。最常用的三个:
void rewind(FILE *st)
将流st的文件指示器重设到文件开始位置。
long ftell(FILE *st)
返回流st当时指示器位置。出错返回-1L。
.
2
int fseek(FILE *st, long offset,
• 文件错误检查:int ferror(FILE *stream)
IO出错时设置相关流的出错标志变量。ferror检查流 的出错标志。当stream的状态变量设置时返回非0。
• 错误标志复位(清除)函数
void clearerr(FI. LE *stream)
4
标准库错误处理:
为检查程序执行中出错,库提供了一些机制。
.
3
出错处理
输出出错信息是希望显示到屏幕供人读。通过stdout 不合适:输出定向到文件也使出错信息送到文件。
送到标准错误流stderr的信息不受定向影响。改造前 面程序cat,只需要改动一个语句:
fprintf(stderr,"%s, can't open in file: %s\n", name, *argv);
示char*(字符数组),用c表示字符。
.
8
char* strpbrk(cs1, cs2); 查寻cs2中的字符在cs1里第一次出现的位置。
char* strstr(cs1, cs2);
查寻cs2(子串)在cs1中出现的位置。成功时 返回所确定位置的指针,失败返回空指针。
size_t strspn(cs1, cs2); cs1的所有字符都属于cs2的前缀的长度;
另有一组存储块操作函数:复制memcpy、移动 (允许重叠)memmove、比较memcmp、位置查 找memchr、设置memset。
.
10
9.5.2 一些功能函数,<stdlib.h>
随机数生成和动态存储分配函数已介绍。 几个整数函数
int abs(int n) 求整数绝对值 long labs(long n) 求长整数绝对值