当前位置:文档之家› C语言函数库详解(收藏版)

C语言函数库详解(收藏版)

C语言函数库详解(收藏版)
C语言函数库详解(收藏版)

c语言函数库

目录

第一章(C标准库) (4)

1. :诊断 (4)

2. :字符类别测试 (5)

3. :错误处理 (5)

4. :整型常量 (6)

5. :地域环境 (6)

6. :数学函数 (7)

7. :非局部跳转 (8)

8. :信号 (9)

9. :可变参数表 (11)

10. :公共定义 (11)

11. :输入输出 (12)

12. :实用函数 (13)

13. :日期与时间函数 (13)

第二章(IO函数) (14)

clearerr:复位错误标志函数 (15)

feof:检测文件结束符函数 (16)

ferror:检测流上的错误函数 (17)

fflush:清除文件缓冲区函数 (18)

fgetc:从流中读取字符函数 (19)

fgetpos:取得当前文件的句柄函数 (20)

fgets:从流中读取字符串函数 (21)

fopen、fclose:文件的打开与关闭函数 (22)

fprintf:格式化输出函数 (23)

fputc:向流中输出字符函数 (25)

fputs:向流中输出字符串函数 (25)

fread:从流中读取字符串函数 (26)

freopen:替换文件中数据流函数 (27)

fscanf:格式化输入函数 (28)

fseek:文件指针定位函数 (28)

fsetpos:定位流上的文件指针函数 (30)

ftell:返回当前文件指针位置函数 (31)

fwrite:向文件写入数据函数 (31)

getc:从流中读取字符函数 (32)

getchar:从标准输入文件中读取字符函数 (33)

gets:从标准输入文件中读取字符串函数 (34)

perror:打印系统错误信息函数 (34)

printf:产生格式化输出的函数 (35)

putc:向指定流中输出字符函数 (36)

putchar:向标准输出文件上输出字符 (37)

remove:删除文件函数 (38)

rename:重命名文件函数 (38)

rewind:重置文件指针函数 (39)

scanf:格式化输入函数 (40)

setbuf、setvbuf:指定文件流的缓冲区函数 (41)

sprintf:向字符串写入格式化数据函数 (42)

sscanf:从缓冲区中读格式化字符串函数 (42)

tmpfile:创建临时文件函数 (43)

tmpnam:创建临时文件名函数 (44)

ungetc:把字符退回到输入流函数 (44)

第三章(字符处理函数) (46)

isalnum:检查字符是否是字母或数字 (46)

isalpha:检查字符是否是字母 (47)

isascii:检查字符是否是ASCII码 (48)

iscntrl:检查字符是否是控制字符 (48)

isdigit:检查字符是否是数字字符 (49)

isgraph:检查字符是否是可打印字符(不含空格) (50)

islower:检查字符是否是小写字母 (50)

isprint:检查字符是否是可打印字符(含空格) (51)

ispunct:检查字符是否是标点字符 (52)

isspace:检查字符是否是空格符 (52)

isupper:检查字符是否是大写字母 (53)

isxdigit:检查字符是否是十六进制数字字符 (54)

toascii:将字符转换为ASCII码 (54)

tolower:将大写字母转换为小写字母 (55)

toupper:将小写字母转换为大写字母 (56)

第四章(字符串函数) (56)

atof:字符串转浮点型函数 (57)

atoi:字符串转整型函数 (58)

atol:字符串转长整型函数 (58)

memchr:字符搜索函数 (59)

memcmp:字符串比较函数 (60)

memcpy:字符串拷贝函数 (61)

memmove:字块移动函数 (62)

memset:字符加载函数 (63)

strcat:字符串连接函数 (64)

strchr:字符串中字符首次匹配函数 (64)

strcmp:字符串比较函数 (65)

strcpy:字符串拷贝函数 (66)

strcspn:字符集逆匹配函数 (67)

strdup:字符串新建拷贝函数 (68)

strerror:字符串错误信息函数 (69)

strlen:计算字符串长度函数 (70)

strncat:字符串连接函数 (71)

strncmp:字符串子串比较函数 (72)

strncpy:字符串子串拷贝函数 (73)

strpbrk:字符集字符匹配函数 (74)

strrchr:字符串中字符末次匹配函数 (75)

strrev:字符串倒转函数 (76)

strset:字符串设定函数 (77)

strspn:字符集匹配函数 (78)

strstr:字符串匹配函数 (79)

strtod:字符串转换成双精度函数 (79)

strtok:字符串分隔函数 (81)

strtol:字符串转换成长整型函数 (82)

strtoul:字符串转换成无符号长整型函数 (83)

strupr:字符串大写转换函数 (84)

strupr:字符串大写转换函数 (85)

第五章(数学函数) (85)

abs、labs、fabs:求绝对值函数 (86)

acos:反余弦函数 (87)

asin:反正弦函数 (87)

atan:反正切函数 (88)

atan2:反正切函数2 (88)

ceil:向上舍入函数 (89)

cos :余弦函数 (89)

cosh:双曲余弦函数 (90)

div、ldiv:除法函数 (90)

exp:求e的x次幂函数 (92)

floor:向下舍入函数 (92)

fmod:求模函数 (93)

frexp:分解浮点数函数 (93)

hypot:求直角三角形斜边长函数 (94)

ldexp:装载浮点数函数 (94)

log、log10:对数函数 (95)

modf:分解双精度数函数 (96)

pow、pow10:指数函数 (96)

rand:产生随机整数函数 (97)

sin:正弦函数 (97)

sinh:双曲正弦函数 (98)

sqrt:开平方函数 (98)

srand:设置随机时间的种子函数 (99)

tan:正切函数 (100)

tanh:双曲正切函数 (100)

第六章(时间和日期函数) (101)

asctime:日期和时间转换函数 (101)

clock:测定运行时间函数 (102)

ctime:时间转换函数 (103)

difftime:计算时间差函数 (103)

gmtime:将日历时间转换为GMT (104)

localtime:把日期和时间转变为结构 (105)

mktime:时间类型转换函数 (105)

time:获取系统时间函数 (107)

第七章(其它函数) (107)

abort:异常终止进程函数 (107)

atexit:注册终止函数 (108)

bsearch:二分搜索函数 (109)

calloc:分配主存储器函数 (110)

exit:正常终止进程函数 (111)

free:释放内存函数 (112)

getenv:获取环境变量 (113)

malloc:动态分配内存函数 (113)

qsort:快速排序函数 (114)

realloc:重新分配主存函数 (115)

第一章(C标准库)

1. :诊断

2. :字符类别测试

3. :错误处理

4. :整型常量

5. :地域环境

6. :数学函数

7. :非局部跳转

8. :信号

9. :可变参数表

10. :公共定义

11. :输入输出

12. :实用函数

13. :日期与时间函数

1. :诊断

中只定义了一个带参的宏assert,其定义形式如下:

void assert (int 表达式)

assert宏用于为程序增加诊断功能,它可以测试一个条件并可能使程序终止。在执行语句:

assert(表达式);

时,如果表达式为0,则在终端显示一条信息:

Assertion failed: 0, file 源文件名, line 行号

Abnormal program termination

然后调用abort终止程序的执行。

中,带参宏assert是被定义为条件编译的,如果在源文件中定义了宏NDEBUG,则即使包含了头文件,assert宏也将被忽略。

2. :字符类别测试

在头文件中定义了一些测试字符的函数。在这些函数中,每个函数的参数都是整型int,而每个参数的值或者为EOF,或者为char类型的字符。中定义的标准函数列表如下:

中定义的函数

函数定义, 函数功能简介

int isalnum(int c), 检查字符是否是字母或数字

int isalpha(int c), 检查字符是否是字母

int isascii(int c), 检查字符是否是ASCII码

int iscntrl(int c), 检查字符是否是控制字符

int isdigit(int c), 检查字符是否是数字字符

int isgraph(int c), 检查字符是否是可打印字符

int islower(int c), 检查字符是否是小写字母

int isprint(int c), 检查字符是否是可打印字符

int ispunct(int c), 检查字符是否是标点字符

int isspace(int c), 检查字符是否是空格符

int isupper(int c), 检查字符是否是大写字母

int isxdigit(int c), 检查字符是否是十六进制数字字符

int toupper(int c), 将小写字母转换为大写字母

int tolower(int c), 将大写字母转换为小写字母

, ,

有关中定义的这些标准函数以及一些常用的非标准字符处理函数将在第十一章中进行详细地介绍。

3. :错误处理

中定义了两个常量,一个变量。

1、EDOM

它表示数学领域错误的错误代码。

2、ERANGE

它表示结果超出范围的错误代码。

3、errno

这是一个变量,该值被设置成用来指出系统调用的错误类型。

4. :整型常量

在头文件中定义了一些表示整型大小的常量。下面给出这些常量的字符表示以及含义,见下表。

中定义的字符常量字符常量, 取值, 含义

CHAR_BIT, 8, char类型的位数

CHAR_MAX, 255或127, char类型最大值

CHAR_MIN, 0或-127, char类型最小值

INT_MIN, -32767, int类型最小值

INT_MAX , 32767, int类型最大值

LONG_MAX, 2147483647, long类型最大值

LONG_MIN, -2147483647, long类型最小值

SCHAR_MAX, 127, signed char 类型最大值

SCHAR_MIN, -127, signed char 类型最小值

SHRT_MAX, 32767, short类型的最大值

SHRT_MIN, -32767, short类型的最小值

UCHAR_MAX, 255, unsigned char 类型最大值

UINT_MAX, 65535, unsigned int 类型最大值

ULONG_MAX, 4294967295, unsigned long 类型最大值

USHRT_MAX, 65535, unsigned short类型的最大值

5. :地域环境

中,定义了7个常量,一个结构,2个函数。

1、常量的定义

LC_ALL:传递给setlocale的第一个参数,指定要更改该locale的哪个方面。

LC_COLLATE:strcoll和strxfrm的行为。

LC_CTYPE:字符处理函数。

LC_MONETARY:localeconv返回的货币信息。

LC_NUMERIC:localeconv返回的小数点和货币信息。

LC_TIME:strftime的行为。

以上扩展成具有唯一取值的整型常数表达式,可作为setlocale的第一个参数。

NULL:由实现环境定义的空指针。

2、struct lconv结构

该结构用于存储和表示当前locale的设置。其结构定义如下:

struct lconv

{

char *decimal_point;

char *thousands_sep;

char *grouping;

char *int_curr_symbol;

char *currency_symbol;

char *mon_decimal_point;

char *mon_thousands_sep;

char *mon_grouping;

char *positive_sign;

char *negative_sign;

char int_frac_digits;

char frac_digits;

char p_cs_precedes;

char p_sep_by_space;

char n_cs_precedes;

char n_sep_by_space;

char p_sign_posn;

char n_sign_posn;

};

3、函数

struct Iconv *localeconv(void);

函数localeconv将一个struct Iconv类型的对象的数据成员设置成为按照当前地域环境的有关规则进行数量格式化后的相应值。

char *setlocale(int category,char * locale);

函数setlocale用于更改和查询程序的整个当前地域环境或部分设置。地域环境变量由参数category(上面定义的6个常量)和locale指定。

6. :数学函数

中定义了一些数学函数和宏,用来实现不同种类的数学运算。下面给出中标准数学函数的函数定义及功能简介,见下表。

中定义的函数

函数定义, 函数功能简介

double exp(double x);, 指数运算函数, 求e的x次幂函数

double log(double x), 对数函数ln(x)

double log10(double x); , 对数函数log

double pow(double x, double y);, 指数函数(x的y次方)

double sqrt(double x); , 计算平方根函数

double ceil(double x); , 向上舍入函数

double floor(double x);, 向下舍入函数

double fabs(double x);, 求浮点数的绝对值

double ldexp(double x, int n); , 装载浮点数函数

double frexp(double x, int* exp); , 分解浮点数函数

double modf(double x, double* ip); , 分解双精度数函数

double fmod(double x, double y);, 求模函数

double sin(double x); , 计算x的正弦值函数

double cos(double x);, 计算x的余弦值函数

double tan(double x);, 计算x的正切值函数

double asin(double x);, 计算x的反正弦函数

double acos(double x); , 计算x的反余弦函数

double atan(double x); , 反正切函数1

double atan2(double y, double x); , 反正切函数2

double sinh(double x); , 计算x的双曲正弦值

double cosh(double x); , 计算x的双曲余弦值

double tanh(double x); , 计算x的双曲正切值

在标准库中,还有一些与数学计算有关的函数定义在其他头文件中。

7. :非局部跳转

在头文件中定义了一种特别的函数调用和函数返回顺序的方式。这种方式不同于以往的函数调用和返回顺序,它允许程序流程立即从一个深层嵌套的函数中返回。

中定义了两个宏:

int setjmp(jmp_buf env); /*设置调转点*/

longjmp(jmp_buf jmpb, int retval); /*跳转*/

宏setjmp的功能是将当前程序的状态保存在结构env ,为调用宏longjmp设置一个跳转点。setjmp将当前信息保存在env中供longjmp使用。其中env是jmp_buf结构类型的,该结构定义为:

typedef struct {

unsigned j_sp;

unsigned j_ss;

unsigned j_flag;

unsigned j_cs;

unsigned j_ip;

unsigned j_bp;

unsigned j_di;

unsigned j_es;

unsigned j_si;

unsigned j_ds;

} jmp_buf[1];

直接调用setjmp时,返回值为0,这一般用于初始化(设置跳转点时)。以后再调用

longjmp宏时用env变量进行跳转。程序会自动跳转到setjmp宏的返回语句处,此时setjmp 的返回值为非0,由longjmp的第二个参数指定。

下面通过例子来理解中定义的这两个宏。

例程9-1 非局部跳转演示。

#include

jmp_buf env; /*定义jmp_buf类型变量*/

int main(void)

{

int value;

value = setjmp(env); /*调用setjmp,为longjmp设置跳转点*/

if (value != 0)

{

printf("Longjmp with value %d\n", value);

exit(value); /*退出程序*/

}

printf("Jump ... \n");

longjmp(env,1); /*跳转到setjmp语句处*/

return 0;

}

本例程先应用setjmp宏为longjmp设置跳转点,当第一次调用setjmp时返回值为0,并将程序的当前状态(寄存器的相关状态)保存在结构变量env中。当程序执行到longjmp 时,系统会根据setjmp保存下来的状态env跳转到setjmp语句处,并根据longjmp的第二个参数设置此时setjmp的返回值。

本例程的运行结果为:

Jump ...

Longjmp with value 1

一般地,宏setjmp和longjmp是成对使用的,这样程序流程可以从一个深层嵌套的函数中返回。

8. :信号

头文件中提供了一些处理程序运行期间引发的各种异常条件的功能,例如一些来自外部的中断信号等。

中只定义了两个函数:

int signal(int sig, sigfun fname);

int raise(int sig);

signal函数的作用是设置某一信号的对应动作。其中参数sig用来指定哪一个信号被设置处理函数。在标准C 中支持的信号如下表。

标准C支持的信号

取值, 说明, 默认执行动作, 使用的操作系统

SIGABRT, 异常中止, 中止程序, UNIX DOS

SIGPPE, 算术运算错误, 中止程序, UNIX DOS

SIGILL, 非法硬件指令, 中止程序, UNIX DOS

SIGINT, 终端中断, 中止程序, UNIX DOS

SIGSEGV, 无效的内存访问, 中止程序, UNIX DOS

SIGTERM, 中止信号, 中止程序, UNIX DOS

参数fname是一个指向函数的指针,当sig的信号发生时程序会自动中断转而执行fname 指向的函数。执行完毕再返回断点继续执行程序。系统提供了两个常量函数指针,可以作为函数的参数传递。它们分别是:

SIG_DEF:执行默认的系统第一的函数。

SIG_IGN:忽略此信号。

raise函数的作用是向正在执行的程序发送一个信号,从而使得当前进程产生一个中断而转向信号处理函数signal执行。其中参数sig为信号名称,它的取值范围同函数signal中的参数sig取值范围相同,见表9-6。

下面通过例子理解函数signal和raise。

例程9-2 signall和raise函数演示

#include

#include

void Print1();

void Print2();

int main()

{ signal(SIGINT,Print1);

printf("Please enter Ctr+c for interupt\n") ;

getchar();

signal(SIGSEGV,Print2);

printf("Please enter any key for a interupt\n");

getchar();

raise(SIGSEGV);

}

void Print1()

{

printf("This is a SIGINT interupt!\n");

}

void Print2()

{

printf("This is a SIGSEGV interupt!\n");

}

本例程首先通过用户终端输入Ctrl+c产生一个终端中断,然后应用signal函数调用中断处理函数Print1;再通过raise函数生成一个无效内存访问中断,并通过signal函数调用中断处理函数Print2。

本例程的运行结果为:

Please enter Ctr+c for interupt

^C

This is a SIGINT interupt!

Please enter any key for a interupt

a

This is a SIGSEGV interupt!

9. :可变参数表

可变参数表中的宏是用来定义参数可变的函数的。在C语言中,有些库函数或者用户自定义的函数的参数是可变的,常用省略号“……”(例如库函数中的printf),定义这样的函数就要使用到中的宏。

1、va_list

用于保存宏va_start,va_arg以及va_end所需信息的数据类型。

2、中还定义了三个宏

void va_start(va_list ap, parmN);

type va_arg(va_list ap,type);

void va_end (va_list ap);

va_start的作用是初始化ap,因此va_start要在所有其它的va_开头的宏前面最先使用(除了用va_list定义变量外),后面的va_copy, va_arg, va_end都要使用到ap。在一对va_start和va_end之间不能再次使用va_start宏。其中,parmN 为"..."之前的最后一个参数。例如, printf 函数定义为:printf(const char *format, ...); 那么在printf函数中的va_start使用之后, parmN 的值就等于*format。

va_arg的作用就是返回参数列表ap中的下一个具有type类型的参数, 每次调用va_arg 都会修改ap的值, 这样才能连续不断地获取下一个type类型的参数。

va_end与va_start构成了一个scope,va_end标志着结束,va_end之后ap就无效了。

10. :公共定义

在头文件中,指定了标准库中的公共定义。其中主要包括以下内容:

1、NULL

空指针类型常量。

2、offset(type,member-designator)

它是扩展iz-t类型的一个整型常数表达式。它的值为从type定义的结构类型的开头到结构成员member-designator的偏移字节数。

3、ptrdiff_t

表示两指针之差的带符号整数类型。

4、size_t

表示由sizeof运算符计算出的结果类型,它是一个无符号整数类型。

5、wchar_t

它是一种整数类型,取值范围为在被支持的地域环境中最大扩展字符集的所有字符的各种代码,空字符代码值为0。

11. :输入输出

在头文件中定义了输入输出函数,类型和宏。这些函数、类型和宏几乎占到标准库的三分之一。

下面给出头文件中声明的函数以及功能简介,见下表。

中声明的函数

函数定义, 函数功能简介

FILE *fopen(char *filename, char *type), 打开一个文件

FILE *fropen(char *filename, char *type,FILE *fp), 打开一个文件,并将该文件关联到fp 指定的流

int fflush(FILE *stream), 清除一个流

int fclose(FILE *stream), 关闭一个文件

int remove(char *filename), 删除一个文件

int rename(char *oldname, char *newname), 重命名文件

FILE *tmpfile(void), 以二进制方式打开暂存文件

char *tmpnam(char *sptr), 创建一个唯一的文件名

int setvbuf(FILE *stream, char *buf, int type, unsigned size), 把缓冲区与流相关

int printf(char *format...), 产生格式化输出的函数

int fprintf(FILE *stream, char *format[, argument,...]), 传送格式化输出到一个流中

int scanf(char *format[,argument,...]), 执行格式化输入

int fscanf(FILE *stream, char *format[,argument...]), 从一个流中执行格式化输入

int fgetc(FILE *stream), 从流中读取字符

char *fgets(char *string, int n, FILE *stream), 从流中读取一字符串

int fputc(int ch, FILE *stream), 送一个字符到一个流中

int fputs(char *string, FILE *stream), 送一个字符到一个流中

int getc(FILE *stream), 从流中取字符

int getchar(void), 从stdin流中读字符

char *gets(char *string), 从流中取一字符串

int putchar(int ch), 在stdout上输出字符

int puts(char *string), 送一字符串到流中

int ungetc(char c, FILE *stream), 把一个字符退回到输入流中

int fread(void *ptr, int size, int nitems, FILE *stream), 从一个流中读数据

int fwrite(void *ptr, int size, int nitems, FILE *stream), 写内容到流中

int fseek(FILE *stream, long offset, int fromwhere), 重定位流上的文件指针

long ftell(FILE *stream), 返回当前文件指针

int rewind(FILE *stream), 将文件指针重新指向一个流的开头

int fgetpos(FILE *stream), 取得当前文件的句柄

int fsetpos(FILE *stream, const fpos_t *pos), 定位流上的文件指针

void clearerr(FILE *stream), 复位错误标志

int feof(FILE *stream), 检测流上的文件结束符

int ferror(FILE *stream), 检测流上的错误

void perror(char *string), 系统错误信息

在头文件中还定义了一些类型和宏。

12. :实用函数

在头文件中声明了一些实现数值转换,内存分配等类似功能的函数。下面给出头文件中声明的函数以及功能简介,见下表。

中声明的函数

函数定义, 函数功能简介

double atof(const char *s), 将字符串s转换为double类型

int atoi(const char *s) , 将字符串s转换为int类型

long atol(const char *s), 将字符串s转换为long类型

double strtod (const char*s,char **endp) , 将字符串s前缀转换为double型

long strtol(const char*s,char **endp,int base), 将字符串s前缀转换为long型

unsinged long strtol(const char*s,char **endp,int base), 将字符串s前缀转换为unsinged long 型

int rand(void), 产生一个0~RAND_MAX之间的伪随机数

void srand(unsigned int seed) , 初始化随机数发生器

void *calloc(size_t nelem, size_t elsize), 分配主存储器

void *malloc(unsigned size), 内存分配函数

void *realloc(void *ptr, unsigned newsize), 重新分配主存

void free(void *ptr), 释放已分配的块

void abort(void), 异常终止一个进程

void exit(int status), 终止应用程序

int atexit(atexit_t func), 注册终止函数

char *getenv(char *envvar), 从环境中取字符串

void *bsearch(const void *key, const void *base, size_t *nelem, size_t width, int(*fcmp)(const void *, const *)), 二分法搜索函数

void qsort(void *base, int nelem, int width, int (*fcmp)()), 使用快速排序例程进行排序

int abs(int i), 求整数的绝对值

long labs(long n), 取长整型绝对值

div_t div(int number, int denom), 将两个整数相除, 返回商和余数

ldiv_t ldiv(long lnumer, long ldenom), 两个长整型数相除, 返回商和余数

有关上面列出的这些标准实用函数的功能、用法、例程等。

13. :日期与时间函数

在头文件中,声明了一些处理日期和时间的类型与函数。clock_t和time_t是两个表示时间值的算术类型。结构struct tm存储了一个日历时间的各个成分。结构tm的成员的意义及其正常的取值范围如下:

struct tm {

int tm_sec; /*从当前分钟开始经过的秒数(0,61)*/

int tm_min; /*从当前小时开始经过的分钟数(0,59)*/

int tm_hour; /*从午夜开始经过的小时数(0,23)*/

int tm_mday; /*当月的天数(1,31)*/

int tm_mon; /*从1月起经过的月数(0,11)*/

int tm_year; /*从1900年起经过的年数*/

int tm_wday; /*从本周星期天开始经过的天数(0,6)*/

int tm_yday; /*从今年1月1日起经过的天数(0,356)*/

int tm_isdst; /*夏令时标记*/

};

如果夏令时有效,夏令时标记tm_isdst值为正;若夏令时无效,tm_isdst值为0;如果得不到夏令时信息,tm_isdst值为负。

下面给出头文件中声明的时间函数,见下表。

中声明的时间函数

函数定义, 函数功能简介

clock_t clock(void), 确定处理器时间函数

time_t time(time_t *tp), 返回当前日历时间

double difftime(time_t time2, time_t time1), 计算两个时刻之间的时间差

time_t mktime(struct tm *tp), 将分段时间值转换为日历时间值

char *asctime(const struct tm *tblock), 转换日期和时间为ASCII码

char *ctime(const time_t *time), 把日期和时间转换为字符串

struct tm *gmtime(const time_t *timer), 把日期和时间转换为格林尼治标准时间(GMT) struct tm *localtime(const time_t *timer), 把日期和时间转变为结构

size_t strftime(char *s,size_t smax,const char *fmt, const struct tm *tp) , 根据fmt的格式要求将*tp中的日期与时间转换为指定格式。

第二章(IO函数)

1. clearerr:复位错误标志函数 (15)

2. feof:检测文件结束符函数 (16)

3. ferror:检测流上的错误函数 (17)

4. fflush:清除文件缓冲区函数 (18)

5. fgetc:从流中读取字符函数 (19)

6. fgetpos:取得当前文件的句柄函数 (20)

7. fgets:从流中读取字符串函数 (21)

8. fopen、fclose:文件的打开与关闭函数 (22)

9. fprintf:格式化输出函数 (23)

10. fputc:向流中输出字符函数 (25)

11. fputs:向流中输出字符串函数 (25)

12. fread:从流中读取字符串函数 (26)

13. freopen:替换文件中数据流函数 (27)

14. fscanf:格式化输入函数 (28)

15. fseek:文件指针定位函数 (28)

16. fsetpos:定位流上的文件指针函数 (30)

17. ftell:返回当前文件指针位置函数 (31)

18. fwrite:向文件写入数据函数 (31)

19. getc:从流中读取字符函数 (32)

20. getchar:从标准输入文件中读取字符函数 (33)

21. gets:从标准输入文件中读取字符串函数 (34)

22. perror:打印系统错误信息函数 (34)

23. printf:产生格式化输出的函数 (35)

24. putc:向指定流中输出字符函数 (36)

25. putchar:向标准输出文件上输出字符 (37)

26. puts:将字符串输出到终端函数 (37)

27. remove:删除文件函数 (38)

28. rename:重命名文件函数 (38)

29. rewind:重置文件指针函数 (39)

30. scanf:格式化输入函数 (40)

31. setbuf、setvbuf:指定文件流的缓冲区函数 (41)

32. sprintf:向字符串写入格式化数据函数 (42)

33. sscanf:从缓冲区中读格式化字符串函数 (42)

34. tmpfile:创建临时文件函数 (43)

35. tmpnam:创建临时文件名函数 (44)

36. ungetc:把字符退回到输入流函数 (44)

clearerr:复位错误标志函数

函数原型:void clearerr(FILE *fp);

头文件:#include

是否是标准函数:是

函数功能:复位错误标志,即:使fp所指向的文件中的错误标志和文件结束标志置0。当输入输出函数对文件进行读写出错时,文件就会自动产生错误标志,这样会影响程序对文件的后续操作。clearerr函数就是要复位这些错误标志,也就是使fp所指向的文件的错误标志和文件结束标志置0,从而使文件恢复正常。

返回值:无

例程如下:复位错误标志演示。

#include

int main(void)

{

FILE *fp;

char ch;

/* 以写的方式打开一个文件名为test.txt的文件*/

fp = fopen("test.txt", "w");

/* 错误地从fp所指定的文件中读取一个字符,并打印它*/

ch = fgetc(fp);

if (ferror(fp))

{

/* 如果此操作错误,就发布错误信息*/

printf("This is a error reading!\n");

/*复位错误标志*/

C语言函数大全(m开头)

C语言函数大全(m开头) main()主函数 每一C 程序都必须有一 main() 函数, 可以根据自己的爱好把它放在程序的某 个地方。有些程序员把它放在最前面, 而另一些程序员把它放在最后面, 无论放 在哪个地方, 以下几点说明都是适合的。 1. main() 参数 在Turbo C2.0启动过程中, 传递main()函数三个参数: argc, argv和env。 * argc: 整数, 为传给main()的命令行参数个数。 * argv: 字符串数组。 在DOS 3.X 版本中, argv[0] 为程序运行的全路径名; 对DOS 3.0 以下的版本, argv[0]为空串("") 。 argv[1] 为在DOS命令行中执行程序名后的第一个字符串; argv[2] 为执行程序名后的第二个字符串; ... argv[argc]为NULL。 *env: 安符串数组。env[] 的每一个元素都包含ENVVAR=value形式的字符 串。其中ENVVAR为环境变量如PATH或87。value 为ENVVAR的对应值如C:\DOS, C: \TURBOC(对于PATH) 或YES(对于87)。 Turbo C2.0启动时总是把这三个参数传递给main()函数, 可以在用户程序中 说明(或不说明)它们, 如果说明了部分(或全部)参数, 它们就成为main()子程序 的局部变量。 请注意: 一旦想说明这些参数, 则必须按argc, argv, env 的顺序, 如以下 的例子: main() main(int argc) main(int argc, char *argv[]) main(int argc, char *argv[], char *env[])

C语言标准库函数

标准库函数 本附录描述了标准C支持的库函数①。使用此附录时,请记住下列要点。 为了简洁清楚,这里删除了一些细节。如果想看全部内容,请参考标准。本书的其他地方已经对一些函数(特别是printf函数、scanf函数以及它们的变异函数)进行了详细介绍,所以这里 只对这类函数做简短的描述。为了获得关于某个函数更详细的信息(包括如何使用这个函数的示 例),请见函数描述右下角用楷体列出的节号。 每个函数描述结尾都有其他与之相关函数的列表。相似函数非常接近于正在描述的函数。相关函数经常会和在描述的函数联合使用。(例如,calloc函数和realloc函数与malloc函数“类似”, 而free函数则与malloc函数“相关”。)也可参见的函数和在描述的函数没有紧密联系,但是却 可能有影响。 如果把函数行为的某些方面描述为由实现定义的,那么这就意味着此函数依赖于C库的实现方式。 函数将始终行为一致,但是结果却可能会由于系统的不同而千差万别。(换句话说,请参考手册了 解可能发生的问题。)另一方面,未定义的行为是一个不好的消息:不但函数的行为可能会因系统 不同而不同,而且程序也可能会行为异常甚至崩溃。 中许多函数的描述提到了定义域错误和取值范围错误。在本附录的末尾对这两种错误进行了定义。 601 下列库函数的行为是会受到当前地区影响的: 字符处理函数(除了isdigit函数和isxdigit函数)。 格式化输入/输出函数。 多字节字符和字符串函数。 字符串转换函数。 Strcoll函数、strftime函数和strxfrm函数。 例如,isalpha函数实际上检测字符是否在a到z之间或者在A到Z之间。在某些区域内也把其他字符看成是字母次序的。本附录描述了在"C"(默认的)地区内库函数的行为。 一些函数实际上是宏。然而,这些宏的用法和函数完全一样,所以这里不对它们区别对待。 abort 异常终止程序 void abort(void); 产生SIGABRT信号。如果无法捕获信号(或者如果信号处理函数返回),那么程序会异常 终止,并且返回由实现定义的代码来说明不成功的终止。是否清洗输出缓冲区,是否关 闭打开的流,以及是否移除临时文件都是由实现定义的。 相似函数exit函数、raise函数 相关函数assert函数、signal函数 也可参见atexit函数 26.2节abs 整数的绝对值 int abs(int j); 返回整数j的绝对值。如果不能表示j的绝对值,那么函数的行为是未定义的。 ①这些材料经ANSI许可改编自American National Standards Institude ANSI/ISO 9899?1990。这个标准的副本可从 ANSI购买(ANSI, 11 West 42nd Street, New York, NY 10036)。

C语言函数库详解(收藏版)

c语言函数库 目录 第一章(C标准库) (4) 1. :诊断 (4) 2. :字符类别测试 (5) 3. :错误处理 (5) 4. :整型常量 (6) 5. :地域环境 (6) 6. :数学函数 (7) 7. :非局部跳转 (8) 8. :信号 (9) 9. :可变参数表 (11) 10. :公共定义 (11) 11. :输入输出 (12) 12. :实用函数 (13) 13. :日期与时间函数 (13) 第二章(IO函数) (14) clearerr:复位错误标志函数 (15) feof:检测文件结束符函数 (16) ferror:检测流上的错误函数 (17) fflush:清除文件缓冲区函数 (18) fgetc:从流中读取字符函数 (19) fgetpos:取得当前文件的句柄函数 (20) fgets:从流中读取字符串函数 (21) fopen、fclose:文件的打开与关闭函数 (22) fprintf:格式化输出函数 (23) fputc:向流中输出字符函数 (25) fputs:向流中输出字符串函数 (25) fread:从流中读取字符串函数 (26) freopen:替换文件中数据流函数 (27) fscanf:格式化输入函数 (28) fseek:文件指针定位函数 (28) fsetpos:定位流上的文件指针函数 (30) ftell:返回当前文件指针位置函数 (31) fwrite:向文件写入数据函数 (31) getc:从流中读取字符函数 (32) getchar:从标准输入文件中读取字符函数 (33) gets:从标准输入文件中读取字符串函数 (34) perror:打印系统错误信息函数 (34) printf:产生格式化输出的函数 (35) putc:向指定流中输出字符函数 (36) putchar:向标准输出文件上输出字符 (37)

C语言标准库函数2012

常用C语言标准库函数2012 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是否为标点符号:是则返回非零;否则返回零 头文件:ctype.h Isupper 原型:int isupper(inr c) 功能:测试参数c是否为大写字母:是则返回非零;否则返回零 Isxdigit 原型:int isxdigit(int c) 功能:测试参数c是否为十六进制数:是则返回非零;否则返回零 2.数学函数 abs 原型:int abs(int i) 功能:返回整数型参数i的绝对值 头文件:stdlib.h,math.h acos 原型:double acos(double x) 功能:返回双精度参数x的反余弦三角函数值 头文件:math.h asin 原型:double asin(double x) 功能:返回双精度参数x的反正弦三角函数值 头文件:math.h atan 原型:double atan(double x) 功能:返回双精度参数的反正切三角函数值 头文件:math.h atan2 原型:double atan2(double y,double x) 功能:返回双精度参数y和x由式y/x所计算的反正切三角函数值 头文件:math.h cabs

C语言函数大全

C语言函数大全 1 字符测试函数 函数(及意义)函数分解Isalnum(){判断字符是否is alphbet(字母表) number(数字) 为字母或数字} Isalpha(){判断是否为英文is alphbet(字母表) 字母} Isblank(){空格和TAB} is blank(空格) Iscntrl() { 控制} is control(控制) Isdigit(){数字} is digit(数字) Isgraph(){除空格外的可打is graph(图表) 印字符} Islower(){是否为小写} is lowercase(小写) Isprintf(){可打印字符含空这个简单 字符} Ispunct(){标点或特殊符号is punctuation(标点) } Isspace(){检查是否为空字is space(空间) 符,即判断是否为空格,水平 定位字符“\t”,归位字符“\r ”,垂直定位字符“\v”,换行 字符“\n”,翻页“\f”} Isupper(){是否为大写字母is upper_case(大写) } Isxdigit(){十六进制} is hexadecimal digit(十六进制) Tolower(){将小写转换成 大写} Toupper(){将大写转换成这个简单(to change 或者to covert 或者 小写} transformation

字符串函数 Memchr(){在某一内存范围内查找一特定字符}Memory (储存)char(字符型炭)也可以是character (字符) Memcmp(){比较区域 str1,str2的前n个字节} Memory(同理)compare(比较) Memcpy(){由str2所指内存区域复 制n个字节到str1所指内存区域} Memory copy(复制) Memmove(){两个所指的内存区域 可重叠,但是内容会更改,函数 返回值为指向区域内存的指针} Memory move(移动) Memset(){把str所指的内存区域 的前N个字节设置成字符c} Set(设置)

C语言函数库分类说明.

分类函数,所在函数库为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') 数学函数,所在函数库为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为弧度

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语言的一部分,它是由编译系统根据一般用户的需要编制并 提供给用户使用的一组程序。每一种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语言函数习题及答案

第6章函数习题 一、选择题 1. 一个完整的C源程序是【】。 A)要由一个主函数或一个以上的非主函数构成 B)由一个且仅由一个主函数和零个以上的非主函数构成 C)要由一个主函数和一个以上的非主函数构成 D)由一个且只有一个主函数或多个非主函数构成 2. 以下关于函数的叙述中正确的是【】。 A)C语言程序将从源程序中第一个函数开始执行 B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行 C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束 D)main可作为用户标识符,用以定义任意一个函数 3. 以下关于函数的叙述中不正确的是【】。 A)C程序是函数的集合,包括标准库函数和用户自定义函数 B)在C语言程序中,被调用的函数必须在main函数中定义 C)在C语言程序中,函数的定义不能嵌套 D)在C语言程序中,函数的调用可以嵌套 4. 在一个C程序中,【】。 A)main函数必须出现在所有函数之前 B)main函数可以在任何地方出现 C)main函数必须出现在所有函数之后 D)main函数必须出现在固定位置 5. 若在C语言中未说明函数的类型,则系统默认该函数的数据类型是【】 A)float B)long C)int D)double 6. 以下关于函数叙述中,错误的是【】。 A)函数未被调用时,系统将不为形参分配内存单元 B)实参与形参的个数应相等,且实参与形参的类型必须对应一致 C)当形参是变量时,实参可以是常量、变量或表达式 D)形参可以是常量、变量或表达式 7. C程序中各函数之间可以通过多种方式传递数据,下列不能用于实现数据传递的方式是 【】。 A)参数的形实(哑实)结合 B)函数返回值 C)全局变量 D)同名的局部变量 8. 若函数调用时参数为基本数据类型的变量,以下叙述正确的是【】。 A)实参与其对应的形参共占存储单元 B)只有当实参与其对应的形参同名时才共占存储单元 C)实参与对应的形参分别占用不同的存储单元 D)实参将数据传递给形参后,立即释放原先占用的存储单元

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语言函数大全

功能: 异常终止一个进程 用法: 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语言文件操作函数大全(超详细)

fopen(打开文件) 相关函数 open,fclose 表头文件 #include 定义函数 FILE * fopen(const char * path,const char * mode); 函数说明参数path字符串包含欲打开的文件路径及文件名,参数mode字符串则代表着流形态。 mode有下列几种形态字符串: r 打开只读文件,该文件必须存在。 r+ 打开可读写的文件,该文件必须存在。 w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。 w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。 a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。 a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 复制代码代码如下: r Open text file for reading. The stream is positioned at the begin ning of the file. r+ Open for reading and writing. The stream is positioned at the begi nning of the file. w Truncate file to zero length or create text file for writing. The stream is positioned at the beginning of the file.

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

Afx全局函数 AfxBeginThread:开始一个新的线程 AfxEndThread:结束一个旧的线程 AfxFormatString1:类似printf一般地将字符串格式化 AfxFormatString2:类似printf一般地将字符串格式化 AfxMessageBox:类似Windows API 函数MessageBox AfxOuputDebugString:将字符串输往除错装置 AfxGetApp:获得application object (CWinApp派生对象)的指针 AfxGetMainWnd:获得程序主窗口的指针 AfxGetInstance:获得程序的instance handle MFC数据类型 下面这些是和Win32程序共同使用的数据类型 BOOL:布尔值,取值为TRUE or FALSE BSTR:32-bit 字符指针 BYTE:8-bit整数,未带正负号 COLORREF:32-bit数值,代表一个颜色值 DWORD:32-bit整数,未带正负号 LONG:32-bit整数,带正负号 LPARAM:32-bit整数,作为窗口函数或callback函数的一个参数 LPCSTR:32-bit指针,指向一个常数字符串 LPSTR:32-bit指针,指向一个字符串 LPCTSTR:32-bit指针,指向一个常数字符串,此字符串可以移植到Unicode(世界性的字符集)和DBCS(亚洲字符集) LPTSTR:32-bit指针,指向一个字符串,此字符串可以移植到Unicode和DBCS LPVOID:32-bit指针,指向一个未指定类型的数据 LPRESULT:32-bit数值,作为窗口函数或callback函数的返回值 UINT:在Win16中是一个16-bit 未带正负号整数,在Win32中是一个32-bit 未带正负号整数,WNDPROC:32-bit指针,指向一个窗口函数 WORD:16-bit 整数,未带正负号 WPARAM:窗口函数或callback函数的一个参数,在Win16中是16-bit,在Win32中是32-bit 下面这些是MFC独特的数据类型 POSITION:一个数值,代表collection对象(例如数组或链表)中的元素位置,常用于MFC collection classes (即数据处理类,如CArray) LPCRECT:32-bit指针,指向一个不变的RECT结构 CSize说明一个矩形的高和宽,调用CDC::GetTextExtent成员函数计算使用当前字体的一行文字的高和宽决定的尺寸。 CString::LoadString把一个由nID标识的字符串资源读取到现有的CString对象中 CDC::BeginPath:打开设备上下文中的路径,路径打开后,应用程序可以开始调用GDI画图函数定义位于路径上的点。 CDC::SelectClipPath选择当前路径作为设备上下文的剪切区域,通过使用指定模式与任何现有的剪切区域

附录D C语言常用库函数

帮助文件 目录 语法: if(表达式) 语句 if(表达式)语句1 else语句2 if(表达式1)语句1 else if(表达式2)语句2 else if(表达式3)语句3 else if(表达式m)语句m else 语句n switch(表达式) { case 常量表达式1:语句1 case常量表达式2:语句2 ┋ case常量表达式n:语句n default:语句n+1 } while (表达式) 语句; do 语句 while(表达式); for(表达式1;表达式2;表达式3)语句 break; continue;

附录C ASCII编码对照表

附录E 常用头文件 #include //设定插入点 #include //字符处理 #include //定义错误码 #include //浮点数处理 #include //文件输入/输出 #include //参数化输入/输出 #include //数据流输入/输出 #include //定义各种数据类型最值常量 #include //定义本地化函数 #include //定义数学函数 #include //定义输入/输出函数 #include //定义杂项函数及内存分配函数#include //字符串处理 #include //基于数组的输入/输出 #include //定义关于时间的函数 #include //宽字符处理及输入/输出 #include //宽字符分类 #include //复数类 #include //基本输入/输出支持 #include //输入/输出系统使用的前置声明#include #include //基本输入流 #include //基本输出流 #include //STL 队列容器 #include //STL 集合容器 #include //基于字符串的流 #include //STL 堆栈容器 #include //标准异常类 #include //底层输入/输出支持 #include //字符串类 #include //STL 通用模板类 #include //STL 动态数组容器 #include 通用dos中断接口函数 #include )驻留并退出函数

C语言函数大全六.docx

gcvt 功能 把双精度数转化成字符串的函数 头文件 stdlib.h 语法 char*gcvt(value, ndigit,buf) getc 功能 从流屮取字符的宏 头文件 stdio.h 语法 int getc(FILE *stream) getchar 功能 从stdin流中读取一个字符的函数 头文件 39 错误!超链接引用无效。从入门到精通 stdio.h

字符型变最=getchar getcurdir 功能 读収指定驱动器的当前目录的函数 头文件 dir.h 语法 int getcurdir(int drive,char directory) drive=0(缺省);1 (A 驱动器);... directory用来存放目录名,不包括驱动器名,不以反斜杠开始。 返冋值 0(删IJ成功);1(出错)getcwd 功能 读取当前冃录的函数 头文件 dir.h 语法 char *getcwd(char *buf,int buflen) 返回值 若buf非空,调用成功返回buf,出错返回NULL;若buf为NULL,返回指向己经分配的内存缓冲区地址。

getdate 功能 读取系统日期函数 头文件 dos.h 语法 void getdate(pdate)struct date{int da_year;int da_day;int da_mon;}; struct date *pdate; getdfree 功能 读取磁盘空闲空间的函数 头文件 dir.h 语法 void getdfree(drive,dtable) getdisk 功能 读取当前磁盘驱动器号函数

C语言库函数手册

C语言库函数手册 转载说明:可能有些函数已经过时,但从学习的角度来看,还是有一定的参考价值。 分类函数,所在函数库为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') 数学函数,所在函数库为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为弧度

C语言中常用的标准库函数

C语言中常用的标准库函数 (2011-03-17 09:00:43) 转载 标签: 库函数 c语言 字符串 输入输出 整数 杂谈 标准头文件包括: 一、标准定义() 文件里包含了标准库的一些常用定义,无论我们包含哪个标准头文件,都会被自动包含进来。 这个文件里定义: l 类型size_t (sizeof运算符的结果类型,是某个无符号整型); l 类型ptrdiff_t(两个指针相减运算的结果类型,是某个有符号整型); l 类型wchar_t (宽字符类型,是一个整型,其中足以存放本系统所支持的所有本地环境中的

字符集的所有编码值。这里还保证空字符的编码值为0); l 符号常量NULL (空指针值); l 宏offsetor (这是一个带参数的宏,第一个参数应是一个结构类型,第二个参数应是结构 成员名。offsetor(s,m)求出成员m在结构类型t 的变量里的偏移量)。 注:其中有些定义也出现在其他头文件里(如NULL)。 二、错误信息(定义了一个int类型的表达式errno,可以看作一个变量,其初始值为0,一些标准库函数执行中出错时将它设为非0值,但任何标准库函数都设置它为0。 里还定义了两个宏EDOM和ERANGE,都是非0的整数值。数学函数执行中遇到参数错误,就会将errno置为EDOM,如出现值域错误就会将errno 置为ERANGE。 三、输入输出函数() 文件打开和关闭: FILE *fopen(const char *filename, const char *mode); int fclose(FILE * stream); 字符输入输出: int fgetc(FILE *fp); int fputc(int c, FILE *fp); getc和putc与这两个函数类似,但通过宏定义实现。通常有下面定义: #define getchar() getc(stdin) #define putchar(c) putc(c, stdout) int ungetc(int c, FILE* stream); //把字符 c 退回流 stream

相关主题
文本预览
相关文档 最新文档