当前位置:文档之家› c语言头文件大全

c语言头文件大全

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为弧度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为弧度

double sinh(double x) 返回x的双曲正弦sinh(x)值,x为弧度

double tanh(double x) 返回x的双曲正切tanh(x)值,x为弧度

double hypot(double x,double y) 返回直角三角形斜边的长度(z),

x和y为直角边的长度,z2=x2+y2

double ceil(double x) 返回不小于x的最小整数

double floor(double x) 返回不大于x的最大整数

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

int rand() 产生一个随机数并返回这个数

double poly(double x,int n,double c[])从参数产生一个多项式

double modf(double value,double *iptr)将双精度数value分解成尾数和阶

double fmod(double x,double y) 返回x/y的余数

double frexp(double value,int *eptr) 将双精度数value分成尾数和阶

double atof(char *nptr) 将字符串nptr转换成浮点数并返回这个浮点数double atoi(char *nptr) 将字符串nptr转换成整数并返回这个整数double atol(char *nptr) 将字符串nptr转换成长整数并返回这个整数char *ecvt(double value,int ndigit,int *decpt,int *sign)

将浮点数value转换成字符串并返回该字符串

char *fcvt(double value,int ndigit,int *decpt,int *sign)

将浮点数value转换成字符串并返回该字符串

char *gcvt(double value,int ndigit,char *buf)

将数value转换成字符串并存于buf中,并返回buf的指针

char *ultoa(unsigned long value,char *string,int radix)

将无符号整型数value转换成字符串并返回该字符串,radix为转换时所用基数char *ltoa(long value,char *string,int radix)

将长整型数value转换成字符串并返回该字符串,radix为转换时所用基数

char *itoa(int value,char *string,int radix)

将整数value转换成字符串存入string,radix为转换时所用基数

double atof(char *nptr) 将字符串nptr转换成双精度数,并返回这个数,错误返回0

int atoi(char *nptr) 将字符串nptr转换成整型数, 并返回这个数,错误返回0

long atol(char *nptr) 将字符串nptr转换成长整型数,并返回这个数,错误返回0 double strtod(char *str,char **endptr)将字符串str转换成双精度数,并返回这个数, long strtol(char *str,char **endptr,int base)将字符串str转换成长整型数,

并返回这个数,

int matherr(struct exception *e)

用户修改数学错误返回信息函数(没有必要使用)

double _matherr(_mexcep why,char *fun,double *arg1p,

double *arg2p,double retval)

用户修改数学错误返回信息函数(没有必要使用)

unsigned int _clear87() 清除浮点状态字并返回原来的浮点状态

void _fpreset() 重新初使化浮点数学程序包

unsigned int _status87() 返回浮点状态字

目录函数,所在函数库为dir.h、dos.h

int chdir(char *path) 使指定的目录path(如:"C:\\WPS")变成当前的工作目录,成功返回0

int findfirst(char *pathname,struct ffblk *ffblk,int attrib)查找指定的文件,成功

返回0

pathname为指定的目录名和文件名,如"C:\\WPS\\TXT"

ffblk为指定的保存文件信息的一个结构,定义如下:

┏━━━━━━━━━━━━━━━━━━┓

┃struct ffblk┃

┃{┃

┃ char ff_reserved[21]; /*DOS保留字*/┃

┃ char ff_attrib; /*文件属性*/ ┃

┃ int ff_ftime; /*文件时间*/ ┃

┃ int ff_fdate; /*文件日期*/ ┃

┃ long ff_fsize; /*文件长度*/ ┃

┃ char ff_name[13]; /*文件名*/ ┃

┃}┃

┗━━━━━━━━━━━━━━━━━━┛

attrib为文件属性,由以下字符代表

┏━━━━━━━━━┳━━━━━━━━┓

┃FA_RDONLY 只读文件┃FA_LABEL卷标号┃

┃FA_HIDDEN 隐藏文件┃FA_DIREC目录┃

┃FA_SYSTEM 系统文件┃FA_ARCH档案┃

┗━━━━━━━━━┻━━━━━━━━┛

例:

struct ffblk ff;

findfirst("*.wps",&ff,FA_RDONLY);

int findnext(struct ffblk *ffblk) 取匹配finddirst的文件,成功返回0

void fumerge(char *path,char *drive,char *dir,char *name,char *ext) 此函数通过盘符drive(C:、A:等),路径dir(\TC、\BC\LIB等),

文件名name(TC、WPS等),扩展名ext(.EXE、.COM等)组成一个文件名

存与path中.

int fnsplit(char *path,char *drive,char *dir,char *name,char *ext) 此函数将文件名path分解成盘符drive(C:、A:等),路径dir(\TC、\BC\LIB等), 文件名name(TC、WPS等),扩展名ext(.EXE、.COM等),并分别存入相应的变量中. int getcurdir(int drive,char *direc) 此函数返回指定驱动器的当前工作目录名称 drive 指定的驱动器(0=当前,1=A,2=B,3=C等)

direc 保存指定驱动器当前工作路径的变量成功返回0

char *getcwd(char *buf,iint n) 此函数取当前工作目录并存入buf中,直到n个字节长为为止.错误返回NULL

int getdisk() 取当前正在使用的驱动器,返回一个整数(0=A,1=B,2=C等)

int setdisk(int drive) 设置要使用的驱动器drive(0=A,1=B,2=C等),

返回可使用驱动器总数

int mkdir(char *pathname) 建立一个新的目录pathname,成功返回0

int rmdir(char *pathname) 删除一个目录pathname,成功返回0

char *mktemp(char *template) 构造一个当前目录上没有的文件名并存于template中char *searchpath(char *pathname) 利用MSDOS找出文件filename所在路径,

,此函数使用DOS的PATH变量,未找到文件返回NULL

进程函数,所在函数库为stdlib.h、process.h

void abort() 此函数通过调用具有出口代码3的_exit写一个终止信息于stderr,并异常终止程序。无返回值

int exec…装入和运行其它程序

int execl( char *pathname,char *arg0,char *arg1,…,char *argn,NULL)

int execle( char *pathname,char *arg0,char *arg1,…,

char *argn,NULL,char *envp[])

int execlp( char *pathname,char *arg0,char *arg1,…,NULL)

int execlpe(char *pathname,char *arg0,char *arg1,…,NULL,char *envp[])

int execv( char *pathname,char *argv[])

int execve( char *pathname,char *argv[],char *envp[])

int execvp( char *pathname,char *argv[])

int execvpe(char *pathname,char *argv[],char *envp[])

exec函数族装入并运行程序pathname,并将参数

arg0(arg1,arg2,argv[],envp[])传递给子程序,出错返回-1

在exec函数族中,后缀l、v、p、e添加到exec后,

所指定的函数将具有某种操作能力

有后缀 p时,函数可以利用DOS的PATH变量查找子程序文件。

l时,函数中被传递的参数个数固定。

v时,函数中被传递的参数个数不固定。

e时,函数传递指定参数envp,允许改变子进程的环境,

无后缀e时,子进程使用当前程序的环境。

void _exit(int status)终止当前程序,但不清理现场

void exit(int status) 终止当前程序,关闭所有文件,写缓冲区的输出(等待输出),

并调用任何寄存器的"出口函数",无返回值

int spawn…运行子程序

int spawnl( int mode,char *pathname,char *arg0,char *arg1,…,

char *argn,NULL)

int spawnle( int mode,char *pathname,char *arg0,char *arg1,…,

char *argn,NULL,char *envp[])

int spawnlp( int mode,char *pathname,char *arg0,char *arg1,…,

char *argn,NULL)

int spawnlpe(int mode,char *pathname,char *arg0,char *arg1,…,

char *argn,NULL,char *envp[])

int spawnv( int mode,char *pathname,char *argv[])

int spawnve( int mode,char *pathname,char *argv[],char *envp[])

int spawnvp( int mode,char *pathname,char *argv[])

int spawnvpe(int mode,char *pathname,char *argv[],char *envp[])

spawn函数族在mode模式下运行子程序pathname,并将参数

arg0(arg1,arg2,argv[],envp[])传递给子程序.出错返回-1

mode为运行模式

mode为 P_WAIT 表示在子程序运行完后返回本程序

P_NOWAIT 表示在子程序运行时同时运行本程序(不可用)

P_OVERLAY表示在本程序退出后运行子程序

在spawn函数族中,后缀l、v、p、e添加到spawn后,

所指定的函数将具有某种操作能力

有后缀 p时, 函数利用DOS的PATH查找子程序文件

l时, 函数传递的参数个数固定.

v时, 函数传递的参数个数不固定.

e时, 指定参数envp可以传递给子程序,允许改变子程序运行环境.

当无后缀e时,子程序使用本程序的环境.

int system(char *command) 将MSDOS命令command传递给DOS执行

转换子程序,函数库为math.h、stdlib.h、ctype.h、float.h

char *ecvt(double value,int ndigit,int *decpt,int *sign)

将浮点数value转换成字符串并返回该字符串

char *fcvt(double value,int ndigit,int *decpt,int *sign)

将浮点数value转换成字符串并返回该字符串

char *gcvt(double value,int ndigit,char *buf)

将数value转换成字符串并存于buf中,并返回buf的指针

char *ultoa(unsigned long value,char *string,int radix)

将无符号整型数value转换成字符串并返回该字符串,radix为转换时所用基数char *ltoa(long value,char *string,int radix)

将长整型数value转换成字符串并返回该字符串,radix为转换时所用基数

char *itoa(int value,char *string,int radix)

将整数value转换成字符串存入string,radix为转换时所用基数

double atof(char *nptr) 将字符串nptr转换成双精度数,并返回这个数,错误返回0

int atoi(char *nptr) 将字符串nptr转换成整型数, 并返回这个数,错误返回0 long atol(char *nptr) 将字符串nptr转换成长整型数,并返回这个数,错误返回0 double strtod(char *str,char **endptr)将字符串str转换成双精度数,并返回这个数, long strtol(char *str,char **endptr,int base)将字符串str转换成长整型数,

并返回这个数,

int toascii(int c) 返回c相应的ASCII

int tolower(int ch) 若ch是大写字母('A'-'Z')返回相应的小写字母('a'-'z')

int _tolower(int ch) 返回ch相应的小写字母('a'-'z')

int toupper(int ch) 若ch是小写字母('a'-'z')返回相应的大写字母('A'-'Z')

int _toupper(int ch) 返回ch相应的大写字母('A'-'Z')

诊断函数,所在函数库为assert.h、math.h

void assert(int test) 一个扩展成if语句那样的宏,如果test测试失败,就显示一个信息并异常终止程序,无返回值

void perror(char *string) 本函数将显示最近一次的错误信息,格式如下:字符串string:错误信息

char *strerror(char *str) 本函数返回最近一次的错误信息,格式如下:

字符串str:错误信息

int matherr(struct exception *e)

用户修改数学错误返回信息函数(没有必要使用)

double _matherr(_mexcep why,char *fun,double *arg1p,

double *arg2p,double retval)

用户修改数学错误返回信息函数(没有必要使用)

输入输出子程序,函数库为io.h、conio.h、stat.h、dos.h、stdio.h、signal.h

int kbhit() 本函数返回最近所敲的按键

int fgetchar() 从控制台(键盘)读一个字符,显示在屏幕上

int getch() 从控制台(键盘)读一个字符,不显示在屏幕上

int putch() 向控制台(键盘)写一个字符

int getchar() 从控制台(键盘)读一个字符,显示在屏幕上

int putchar() 向控制台(键盘)写一个字符

int getche() 从控制台(键盘)读一个字符,显示在屏幕上

int ungetch(int c) 把字符c退回给控制台(键盘)

char *cgets(char *string) 从控制台(键盘)读入字符串存于string中

int scanf(char *format[,a rgument…])从控制台读入一个字符串,分别对各个参数进行赋值,使用BIOS进行输出

int vscanf(char *format,Valist param)从控制台读入一个字符串,分别对各个参数进行赋值,使用BIOS进行输出,参数从Valist param中取得

int cscanf(char *format[,argument…])从控制台读入一个字符串,分别对各个参数进行赋值,直接对控制台作操作,比如显示器在显示时字符时即为直接写频方式显示

int sscanf(char *string,char *format[,argument,…])通过字符串string,分别对各个参数进行赋值

int vsscanf(char *string,char *format,Vlist param)通过字符串string,分别对各个参数进行赋值,参数从Vlist param中取得

int puts(char *string) 发关一个字符串string给控制台(显示器),

使用BIOS进行输出

void cputs(char *string) 发送一个字符串string给控制台(显示器),

直接对控制台作操作,比如显示器即为直接写频方式显示

int printf(char *format[,argument,…]) 发送格式化字符串输出给控制台(显示器) 使用BIOS进行输出

int vprintf(char *format,Valist param) 发送格式化字符串输出给控制台(显示器) 使用BIOS进行输出,参数从Valist param中取得

int cprintf(char *format[,argument,…]) 发送格式化字符串输出给控制台(显示器), 直接对控制台作操作,比如显示器即为直接写频方式显示

int vcprintf(char *format,Valist param)发送格式化字符串输出给控制台(显示器), 直接对控制台作操作,比如显示器即为直接写频方式显示,

参数从Valist param中取得

int sprintf(char *string,char *form at[,argument,…])

将字符串string的内容重新写为格式化后的字符串

int vsprintf(char *string,char *format,Valist param)

将字符串string的内容重新写为格式化后的字符串,参数从Valist param中取得int rename(char *oldname,char *newname)将文件oldname的名称改为newname

int ioctl(int handle,int cmd[,int *argdx,int argcx])

本函数是用来控制输入/输出设备的,请见下表:

┌───┬────────────────────────────┐

│cmd值│功能│

├───┼────────────────────────────┤

│ 0 │取出设备信息│

│ 1 │设置设备信息│

│ 2 │把argcx字节读入由argdx所指的地址│

│ 3 │在argdx所指的地址写argcx字节│

│ 4 │除把handle当作设备号(0=当前,1=A,等)之外,均和cmd=2时一样│

│ 5 │除把handle当作设备号(0=当前,1=A,等)之外,均和cmd=3时一样│

│ 6 │取输入状态│

│ 7 │取输出状态│

│ 8 │测试可换性;只对于DOS 3.x │

│ 11 │置分享冲突的重算计数;只对DOS 3.x │

└───┴────────────────────────────┘

int (*ssignal(int sig,int(*action)())()执行软件信号(没必要使用)

int gsignal(int sig) 执行软件信号(没必要使用)

int _open(char *pathname,int access)为读或写打开一个文件,

按后按access来确定是读文件还是写文件,access值见下表

┌──────┬────────────────────┐

│access值│意义│

├──────┼────────────────────┤

│O_RDONLY│读文件│

│O_WRONLY│写文件│

│O_RDWR│即读也写│

│O_NOINHERIT │若文件没有传递给子程序,则被包含│

│O_DENYALL│只允许当前处理必须存取的文件│

│O_DENYWRITE │只允许从任何其它打开的文件读│

│O_DENYREAD│只允许从任何其它打开的文件写│

│O_DENYNONE│允许其它共享打开的文件│

└──────┴────────────────────┘

int open(char *pathname,int access[,int permiss])为读或写打开一个文件, 按后按access来确定是读文件还是写文件,access值见下表

┌────┬────────────────────┐

│access值│意义│

├────┼────────────────────┤

│O_RDONLY│读文件│

│O_WRONLY│写文件│

│O_RDWR│即读也写│

│O_NDELAY│没有使用;对UNIX系统兼容│

│O_APPEND│即读也写,但每次写总是在文件尾添加│

│O_CREAT │若文件存在,此标志无用;若不存在,建新文件│

│O_TRUNC │若文件存在,则长度被截为0,属性不变│

│O_EXCL│未用;对UNIX系统兼容│

│O_BINARY│此标志可显示地给出以二进制方式打开文件│

│O_TEXT│此标志可用于显示地给出以文本方式打开文件│

└────┴────────────────────┘

permiss为文件属性,可为以下值:

S_IWRITE允许写 S_IREAD允许读 S_IREAD|S_IWRITE允许读、写

int creat(char *filename,int permiss) 建立一个新文件filename,并设定读写性。permiss为文件读写性,可以为以下值

S_IWRITE允许写 S_IREAD允许读 S_IREAD|S_IWRITE允许读、写

int _creat(char *filename,int attrib) 建立一个新文件filename,并设定文件属性。attrib为文件属性,可以为以下值

FA_RDONLY只读 FA_HIDDEN隐藏 FA_SYSTEM系统

int creatnew(char *filenamt,int attrib) 建立一个新文件filename,并设定文件属性。attrib为文件属性,可以为以下值

FA_RDONLY只读 FA_HIDDEN隐藏 FA_SYSTEM系统

int creattemp(char *filenamt,int attrib) 建立一个新文件filename,并设定文件属性。attrib为文件属性,可以为以下值

FA_RDONLY只读 FA_HIDDEN隐藏 FA_SYSTEM系统

int read(int handle,void *buf,int nbyte)从文件号为handle的文件中读nbyte个字符存入buf中

int _read(int handle,void *buf,int nbyte)从文件号为handle的文件中读nbyte个字符存入buf中,直接调用MSDOS进行操作.

int write(int handle,void *buf,int nbyte)将buf中的nbyte个字符写入文件号为handle的文件中

int _write(int handle,void *buf,int nbyte)将buf中的nbyte个字符写入文件号为handle的文件中

int dup(int handle) 复制一个文件处理指针handle,返回这个指针

int dup2(int handle,int newhandle) 复制一个文件处理指针handle到newhandle

int eof(int *handle)检查文件是否结束,结束返回1,否则返回0

long filelength(int handle) 返回文件长度,handle为文件号

int setmode(int handle,unsigned mode)本函数用来设定文件号为handle的文件的打开方式

int getftime(int handle,struct ftime *ftime) 读取文件号为handle的文件的时间,并将文件时间存于ftime结构中,成功返回0,ftime结构如下:

┌─────────────────┐

│struct ftime│

│{│

│ unsigned ft_tsec:5; /*秒*/ │

│ unsigned ft_min:6; /*分*/ │

│ unsigned ft_hour:5; /*时*/ │

│ unsigned ft_day:5; /*日*/ │

│ unsigned ft_month:4;/*月*/ │

│ unsigned ft_year:1; /*年-1980*/ │

│}│

└─────────────────┘

int setftime(int handle,struct ftime *ftime) 重写文件号为handle的文件时间, 新时间在结构ftime中.成功返回0.结构ftime如下:

┌─────────────────┐

│struct ftime│

│{│

│ unsigned ft_tsec:5; /*秒*/ │

│ unsigned ft_min:6; /*分*/ │

│ unsigned ft_hour:5; /*时*/ │

│ unsigned ft_day:5; /*日*/ │

│ unsigned ft_month:4;/*月*/ │

│ unsigned ft_year:1; /*年-1980*/ │

│}│

└─────────────────┘

long lseek(int handle,long offset,int fromwhere) 本函数将文件号为handle的文件的指针移到fromwhere后的第offset个字节处.

SEEK_SET 文件开关 SEEK_CUR 当前位置 SEEK_END 文件尾

long tell(int handle) 本函数返回文件号为handle的文件指针,以字节表示

int isatty(int handle)本函数用来取设备handle的类型

int lock(int handle,long offset,long length) 对文件共享作封锁

int unlock(int handle,long offset,long length) 打开对文件共享的封锁

int close(int handle) 关闭handle所表示的文件处理,handle是从_creat、creat、 creatnew、creattemp、dup、dup2、_open、open中的一个处调用获得的文件处理成功返回0否则返回-1,可用于UNIX系统

int _close(int handle) 关闭handle所表示的文件处理,handle是从_creat、creat、 creatnew、creattemp、dup、dup2、_open、open中的一个处调用获得的文件处理成功返回0否则返回-1,只能用于MSDOS系统

FILE *fopen(char *filename,char *type) 打开一个文件filename,打开方式为type,并返回这个文件指针,type可为以下字符串加上后缀

┌──┬────┬───────┬────────┐

│type│读写性│文本/2进制文件│建新/打开旧文件│

├──┼────┼───────┼────────┤

│r│读│文本│打开旧的文件│

│w│写│文本│建新文件│

│a│添加│文本│有就打开无则建新│

│r+│读/写│不限制│打开│

│w+│读/写│不限制│建新文件│

│a+│读/添加│不限制│有就打开无则建新│

└──┴────┴───────┴────────┘

可加的后缀为t、b。加b表示文件以二进制形式进行操作,t没必要使用

例: ┌──────────────────┐

│#include

│main()│

│{│

│ FILE *fp;│

│ fp=fopen("C:\\WPS\\WPS.EXE","r+b");│

└──────────────────┘

FILE *fdopen(int ahndle,char *type)

FILE *freopen(char *filename,char *type,FILE *stream)

int getc(FILE *stream) 从流stream中读一个字符,并返回这个字符

int putc(int ch,FILE *stream)向流stream写入一个字符ch

int getw(FILE *stream) 从流stream读入一个整数,错误返回EOF

int putw(int w,FILE *stream)向流stream写入一个整数

int ungetc(char c,FILE *stream) 把字符c退回给流stream,下一次读进的字符将是c int fgetc(FILE *stream) 从流stream处读一个字符,并返回这个字符

int fputc(int ch,FILE *stream) 将字符ch写入流stream中

char *fgets(char *string,int n,FILE *stream) 从流stream中读n个字符存入string中int fputs(char *string,FILE *stream) 将字符串string写入流stream中

int fread(void *ptr,int size,int nitems,FILE *stream) 从流stream中读入nitems 个长度为size的字符串存入ptr中

int fwrite(void *ptr,int size,int nitems,FILE *stream) 向流stream中写入nitems 个长度为size的字符串,字符串在ptr中

int fscanf(FILE *stream,char *format[,argument,…]) 以格式化形式从流stream中读入一个字符串

int vfscanf(FILE *stream,char *format,Valist param) 以格式化形式从流stream中读入一个字符串,参数从Valist param中取得

int fprintf(FILE *stream,char *format[,argument,…])以格式化形式将一个字符串写给指定的流stream

int vfprintf(FILE *stream,char *format,Valist param) 以格式化形式将一个字符串写给指定的流stream,参数从Valist param中取得

int fseek(FILE *stream,long offset,int fromwhere) 函数把文件指针移到fromwhere 所指位置的向后offset个字节处,fromwhere可以为以下值:

SEEK_SET 文件开关 SEEK_CUR 当前位置 SEEK_END 文件尾

long ftell(FILE *stream) 函数返回定位在stream中的当前文件指针位置,以字节表示int rewind(FILE *stream) 将当前文件指针stream移到文件开头

int feof(FILE *stream) 检测流stream上的文件指针是否在结束位置

int fileno(FILE *stream) 取流stream上的文件处理,并返回文件处理

int ferror(FILE *stream) 检测流stream上是否有读写错误,如有错误就返回1

void clearerr(FILE *stream) 清除流stream上的读写错误

void setbuf(FILE *stream,char *buf) 给流stream指定一个缓冲区buf

void setvbuf(FILE *stream,char *buf,int type,unsigned size)

给流stream指定一个缓冲区buf,大小为size,类型为type,type的值见下表

┌───┬───────────────────────────────┐│type值│意义│

├───┼───────────────────────────────┤│_IOFBF│文件是完全缓冲区,当缓冲区是空时,下一个输入操作将企图填满整个缓│││冲区.在输出时,在把任何数据写到文件之前,将完全填充缓冲区. ││_IOLBF│文件是行缓冲区.当缓冲区为空时,下一个输入操作将仍然企图填整个缓│││冲区.然而在输出时,每当新行符写到文件,缓冲区就被清洗掉. ││_IONBF│文件是无缓冲的.buf和size参数是被忽略的.每个输入操作将直接从文│││件读,每个输出操作将立即把数据写到文件中. │└───┴───────────────────────────────┘int fclose(FILE *stream) 关闭一个流,可以是文件或设备(例如LPT1)

int fcloseall() 关闭所有除stdin或stdout外的流

int fflush(FILE *stream) 关闭一个流,并对缓冲区作处理

处理即对读的流,将流内内容读入缓冲区;

对写的流,将缓冲区内内容写入流。成功返回0

int fflushall() 关闭所有流,并对流各自的缓冲区作处理

处理即对读的流,将流内内容读入缓冲区;

对写的流,将缓冲区内内容写入流。成功返回0

int access(char *filename,int amode) 本函数检查文件filename并返回文件的属性, 函数将属性存于amode中,amode由以下位的组合构成

06可以读、写 04可以读 02可以写 01执行(忽略的) 00文件存在如果filename是一个目录,函数将只确定目录是否存在

函数执行成功返回0,否则返回-1

int chmod(char *filename,int permiss) 本函数用于设定文件filename的属性

permiss可以为以下值

S_IWRITE允许写 S_IREAD允许读 S_IREAD|S_IWRITE允许读、写

int _chmod(char *filename,int func[,int attrib]);

本函数用于读取或设定文件filename的属性,

当func=0时,函数返回文件的属性;当func=1时,函数设定文件的属性

若为设定文件属性,attrib可以为下列常数之一

FA_RDONLY只读 FA_HIDDEN隐藏 FA_SYSTEM系统

math.h常用函数

int abs (int x);

double acos (double x);

double asin (double x);

double atan (double x);

double atan2 (double y, double x);

double atof (const char *s);

double ceil (double x);

double cos (double x);

double cosh (double x);

double exp (double x);

double fabs (double x);

double floor (double x);

double fmod (double x, double y);

double frexp (double x, int *exponent);

long labs (long x);

double ldexp (double x, int exponent);

double log (double x);

double log10 (double x);

double modf (double x, double *ipart);

double pow (double x, double y);

double sin (double x);

double sinh (double x);

double sqrt (double x);

double tan (double x);

double tanh (double x);

stdio.h常用函数包括

int fclose (FILE *stream);

int fflush (FILE *stream);

int fgetc (FILE *stream);

int fgetpos (FILE *stream, fpos_t *pos);

char * fgets (char *s, int n, FILE *stream);

FILE * fopen (const char *path, const char *mode);

int fprintf (FILE *stream, const char *format, ...);

int fputc (int c, FILE *stream);

int fputs (const char *s, FILE *stream);

size_t fread (void *ptr, size_t size, size_t n, FILE *stream); FILE * freopen (const char *path, const char *mode,

FILE *stream);

int fscanf (FILE *stream, const char *format, ...);

int fseek (FILE *stream, long offset, int whence);

int fsetpos (FILE *stream, const fpos_t *pos);

long ftell (FILE *stream);

size_t fwrite (const void *ptr, size_t size, size_t n,

FILE *stream);

int printf (const char *format, ...);

int puts (const char *s);

int rename (const char *oldname, const char *newname); void rewind (FILE *stream);

int scanf (const char *format, ...);

stdlib.h常用函数包括

int abs (int x);

int atexit (atexit_t func);

double atof (const char *s);

int atoi (const char *s);

long atol (const char *s);

void * bsearch(const void *key, const void *base,

size_t nelem, size_t width,

int (*fcmp)(/* const void *, const void * */)); void * calloc (size_t nitems, size_t size);

div_t div (int numer, int denom);

void exit (int status);

void free (void *block);

char * getenv (const char *name);

long labs (long x);

ldiv_t ldiv (long numer, long denom);

void * malloc (size_t size);

void qsort (void *base, size_t nelem, size_t width,

int (*fcmp)(/* const void *, const void * */));

int rand (void);

void * realloc(void *block, size_t size);

void srand (unsigned seed);

double strtod (const char *s, char **endptr);

long strtol (const char *s, char **endptr, int radix); unsigned long strtoul (const char *s, char **endptr, int radix); int system (const char *command);

max(a,b) (((a) > (b)) ? (a) : (b))

min(a,b) (((a) < (b)) ? (a) : (b))

random(num) (rand() % (num))

randomize() srand((unsigned)time(NULL))

string.h常用函数包括:

char * stpcpy (char *dest, const char *src);

char * strcat (char *dest, const char *src);

char * strchr (const char *s, int c);

int strcmp (const char *s1, const char *s2);

char * strcpy (char *dest, const char *src);

size_t strcspn (const char *s1, const char *s2); char * strdup (const char *s);

char * strerror(int errnum);

C语言编程常用头文件

C语言编程常用头文件 C语言常用头文件总结 序号库类别头文件 1 字符处理ctype.h 2 地区化local.h 3 数学函数math.h 4 信号处理signal.h 5 输入输出stdio.h 6 实用工具程序stdlib.h 7 字符串处理string.h 字符处理函数 本类别函数用于对单个字符进行处理,包括字符的类别测试和字符的大小写转换头文件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

免费的单片机C语言常用头文件

免费的函数原形的头文件读者可参考返回非整型值的函数 函数原形的头文件读者可参考返回非整型值的函数assert.h - assert(), 声明宏 ctype.h –字符类型函数 float.h –浮点数原形 limits.h –数据类型的大小和范围 math.h –浮点运算函数 stdarg.h –变量参数表. stddef.h –标准定义 stdio.h –标准输入输出IO 函数 stdlib.h –包含内存分配函数的标准库 string.h –字符串处理函数 3 字符类型库 下列函数按照输入的ACS II 字符集字符分类使用这些函数之前应当用"#include " 包含 int isalnum(int c) 如果c 是数字或字母返回非零数值否则返回零 int isalpha(int c) 如果c 是字母返回非零数值否则返回零 int iscntrl(int c) 如果c 是控制字符如FF, BELL, LF ..等返回非零数值否则返回零 int isdigit(int c) 如果c 是数字返回非零数值否则返回零

int isgraph(int c) 如果c 是一个可打印字符而非空格返回非零数值否则返回零 int islower(int c) 如果c 是小写字母返回非零数值否则返回零 int isprint(int c) 如果c 是一个可打印字符返回非零数值否则返回零 int ispunct(int c) 如果c 是一个可打印字符而不是空格数字或字母返回非零数值否则返回零 int isspace(int c) 如果c 是一个空格字符返回非零数值包括空格CR, FF, HT, NL, 和VT 否则返回零 int isupper(int c) 如果c 是大写字母返回非零数值否则返回零 int isxdigit(int c) 如果c 是十六进制数字返回非零数值否则返回零 int tolower(int c) 如果c 是大写字母则返回c 对应的小写字母其它类型仍然返回c int toupper(int c) 如果c 是小写字母则返回c 对应的大写字母其它类型仍然返回c 4 浮点运算库 下列函数支持浮点数运算使用这些函数之前必须用 #include 包含 float asin(float x) 以弧度形式返回x 的反正弦值 float acos(float x)

C语言中,头文件和源文件的关系

C语言中,头文件和源文件的关系(转) 简单的说其实要理解C文件与头文件(即.h)有什么不同之处,首先需要弄明白编译器的工作过程,一般说来编译器会做以下几个过程: 1.预处理阶段 2.词法与语法分析阶段 3.编译阶段,首先编译成纯汇编语句,再将之汇编成跟CPU相关的二进制码,生成各个目标文件(.obj文件) 4.连接阶段,将各个目标文件中的各段代码进行绝对地址定位,生成跟特定平台相关的可执行文件,当然,最后还可以用objcopy生成纯二进制码,也就是去掉了文件格式信息。(生成.exe文件) 编译器在编译时是以C文件为单位进行的,也就是说如果你的项目中一个C文件都没有,那么你的项目将无法编译,连接器是以目标文件为单位,它将一个或多个目标文件进行函数与变量的重定位,生成最终的可执行文件,在PC上的程序开发,一般都有一个main函数,这是各个编译器的约定,当然,你如果自己写连接器脚本的话,可以不用main函数作为程序入口!!!! (main .c文件目标文件可执行文件) 有了这些基础知识,再言归正传,为了生成一个最终的可执行文件,就需要一些目标文件,也就是需要C文件,而这些C文件中又需要一个main 函数作为可执行程序的入口,那么我们就从一个C文件入手,假定这个C文件内容如下: #include #include "mytest.h" int main(int argc,char **argv) { test = 25; printf("test.................%d/n",test); } 头文件内容如下: int test; 现在以这个例子来讲解编译器的工作: 1.预处理阶段:编译器以C文件作为一个单元,首先读这个C文件,发现第一句与第二句是包含一个头文件,就会在所有搜索路径中寻找这两个文件,找到之后,就会将相应头文件中再去处理宏,变量,函数声明,嵌套的头文件包含等,检测依赖关系,进行宏替换,看是否有重复定义与声明的情况发生,最后将那些文件中所有的东东全部扫描进这个当前的C文件中,形成一个中间“C文件” 2.编译阶段,在上一步中相当于将那个头文件中的test变量扫描进了一个中间C文件,那么test变量就变成了这个文件中的一个全局变量,此时就将所有这个中间C文件的所有变量,函数分配空间,将各个函数编译成二进制码,按照特定目标文件格式生成目标文件,在这种格式的目标文件中进行各个全局变量,函数的符号描述,将这些二进制码按照一定的标准组织成一个目标文件 3.连接阶段,将上一步成生的各个目标文件,根据一些参数,连接生成最终的可执行文件,主要的工作就是重定位各个目标文件的函数,变量等,相当于将个目标文件中的二进制码按一定的规范合到一个文件中再回到C文件与头文件各写什么内容的话题上:理论上来说C文件与头文件里的内容,只要是C语言所支持的,无论写什么都可以的,比如你在头文件中写函数体,只要在任何一个C文件包含此头文件就可以将这个函数编译成目标文件的一部分(编译是以C文件为单位的,如果不在任何C文件中包含此头文件的话,这段代码就形同虚设),你可以在C文件中进行函数声明,变量声明,结构体声明,这也不成问题!!!那为何一定要分成头文件与C文件呢?又为何一般都在头件中进行函数,变量声明,宏声明,结构体声明呢?而在C文件中去进行变量定义,函数实现呢??原因如下: 1.如果在头文件中实现一个函数体,那么如果在多个C文件中引用它,而且又同时编译多个C文件,将其生成的目标文件连接成一个可执行文件,在每个引用此头文件的C文件所生成的目标文件中,都有一份这个函数的代码,如果这段函数又没有定义成局部函数,那么在连接时,就会发现多个相同的函数,就会报错 2.如果在头文件中定义全局变量,并且将此全局变量赋初值,那么在多个引用此头文件的C文件中同样存在相同变量名的拷贝,关键是此变量被

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等参数数量可变底函数。 头文件stdarg.h 函数列表

单片机C语言常用头文件

函数原形的头文件读者可参考返回非整型值的函数 assert.h - assert(), 声明宏 ctype.h –字符类型函数 float.h –浮点数原形 limits.h –数据类型的大小和范围 math.h –浮点运算函数 stdarg.h –变量参数表. stddef.h –标准定义 stdio.h –标准输入输出IO 函数 stdlib.h –包含内存分配函数的标准库 string.h –字符串处理函数 3 字符类型库 下列函数按照输入的ACS II 字符集字符分类使用这些函数之前应当用"#include " 包含 int isalnum(int c) 如果c 是数字或字母返回非零数值否则返回零 int isalpha(int c) 如果c 是字母返回非零数值否则返回零 int iscntrl(int c) 如果c 是控制字符如FF, BELL, LF ..等返回非零数值否则返回零 int isdigit(int c) 如果c 是数字返回非零数值否则返回零 int isgraph(int c) 如果c 是一个可打印字符而非空格返回非零数值否则返回零 int islower(int c) 如果c 是小写字母返回非零数值否则返回零 int isprint(int c) 如果c 是一个可打印字符返回非零数值否则返回零 int ispunct(int c) 如果c 是一个可打印字符而不是空格数字或字母返回非零数值否则返回零 int isspace(int c) 如果c 是一个空格字符返回非零数值包括空格CR, FF, HT, NL, 和VT 否则返回零 int isupper(int c) 如果c 是大写字母返回非零数值否则返回零 int isxdigit(int c) 如果c 是十六进制数字返回非零数值否则返回零 int tolower(int c) 如果c 是大写字母则返回c 对应的小写字母其它类型仍然返回c int toupper(int c) 如果c 是小写字母则返回c 对应的大写字母其它类型仍然返回c 4 浮点运算库 下列函数支持浮点数运算使用这些函数之前必须用#include 包含 float asin(float x) 以弧度形式返回x 的反正弦值

C语言头文件大全

标准C语言头文件 ISO C 标准定义的头文件(24 项)类型 实现常量 尔类型和值 通用类型数学宏 分类和映射支持 匹配类型 ? 路径名模式匹配类型库操作? 组文件? 网络数据 验证程序断言?支持复数算术运算? 字符? 出错码? 浮点环境? 浮点常量 ? 整型格式转换 替代关系操作符宏? ? 局部类别?数学常量 非局部goto ? 信号? 可变参数表? 布? 标准定义? 整型? 标准I/O ? 实用程序库函数? 字符串操作? ? 时间和日期?宽字符支持vwct yp e.h>?宽字符POSIX标准定义的必须的头文件(26 项) ? 目录项? 文件控制? 文件名 口令文件? 正则表达式?tar 归档值

? 终端 I/O ? 符号常量 ? 文件时间 ?消息队列 资源操作 ?信号量 vwordex p.h>?字扩展类型 本地接口 ?Internet 定义 ? 套接字 Internet 地址族 ? 传输控制协议 vsys/mma n.h>?内存 管理声明 ?selec t 状态 函数 ? 套接字接口 ? 文件 ? 进程时间 套接字定义 ? 基本系统数据类型 ?UNIX 域 系统名 ? 进程控制 POSIX 标准定义的XSI 扩展头文件(26项) cpio 归档值 示结构 ? 动态链接 vfmtmsg.h>?消息显 ? 文件树漫游 ? 代码集转换实用程序 ? 语 言信息常量 ? 模式匹配函数定义 作 ? 货币类型 ?数据库操 ? 消息类别 ? 轮询函数 ? 搜索表 ? 字符串操作 上下文 ? 系统出错日志记录 ? 用户 ? 用户限制 ?用户帐户数据库 IPC

C语言头文件作用及写法

C语言头文件作用及写法 头文件几个好处: 1,头文件可以定义所用的函数列表,方便查阅你可以调用的函数; 2,头文件可以定义很多宏定义,就是一些全局静态变量的定义,在这样的情况下,只要修改头文件的内容,程序就可以做相应的修改,不用亲自跑到繁琐的代码内去搜索。 3,头文件只是声明,不占内存空间,要知道其执行过程,要看你头文件所申明的函数是在哪个.c文件里定义的,才知道。 4,他并不是C自带的,可以不用。 5,调用了头文件,就等于赋予了调用某些函数的权限,如果你要算一个数的N次方,就要调用Pow()函数,而这个函数是定义在math.c里面的,要用这个函数,就必需调用math.h 这个头文件。 头文件写法: #include ... //------------------------------- #ifndef MY_POINT #define MY_POINT class Class1 { } class Class2 { } ... #endif 在要使用类定义的文件中加入 #include "头文件名.h " 一般来说,头文件里多数是放的函数定义或函数体。 此外,还有: #ifndef **** #define **** …… #endif 之类的语句,用于控制#define 与#endif之间的内容不被重复定义或插入。 #include 语句起的只是一个插入作用。 也就是说,#include 的文件里的内容可以随便写。 编译器使用#include 的文件里的内容来插入到#include 所在位置。 所以,你说的“头文件”没有固定格式。

如要使用其它头文件中的函数,可以直接在你的头文件中引用。 初学C语言,个人建议你使用C++Builder 6去练习和理解,当然,这要求你有一定的英语水平.在很多情况下会自动的帮你加好头文件,你可以观察它自动生成的文件,代码,以进一步学习。 example: 我截了一小段 /* math.h Definitions for the math floating point package. Copyright (c) 1987, 1991 by Borland International All Rights Reserved. */ #ifndef __MATH_H #define __MATH_H #if !defined( __DEFS_H ) #include <_defs.h> #endif #define HUGE_VAL _huge_dble extern double _Cdecl _huge_dble; #define _LHUGE_VAL _huge_ldble extern long double _Cdecl _huge_ldble; #ifdef __cplusplus extern "C" { #endif double _Cdecl acos (double __x); double _Cdecl asin (double __x); double _Cdecl atan (double __x); double _Cdecl atan2 (double __y, double __x); double _Cdecl ceil (double __x); double _Cdecl cos (double __x); double _Cdecl cosh (double __x); double _Cdecl exp (double __x); double _Cdecl fabs (double __x); double _Cdecl __fabs__ (double __x); /* Intrinsic */ double _Cdecl floor (double __x); double _Cdecl fmod (double __x, double __y); double _Cdecl frexp (double __x, int *__exponent);

C语言所有常用头文件用途

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语言常用头文件及函数

#include(errno.h):错误处理 #include (stdio.h):格式化输入与输出函数 fprintf函数,功能:格式输出(文件) fscanf函数,功能:格式输入(文件) printf函数,功能:格式输出(控制台) scanf函数,功能:格式输入(控制台) fclose函数,功能:关闭文件 fopen函数,功能:打开文件 feof函数,功能:文件结尾判断 ferror函数,功能:文件错误检测 freopen函数,功能:将已存在的流指针和新文件连接 setbuf函数,功能:设置磁盘缓冲区 sscanf函数,功能:从缓冲区中按格式输入 sprintf函数,功能:格式输出到缓冲区 remove函数,功能:删除文件 rename函数,功能:修改文件名称 tmpfile函数,功能:生成临时文件名称 tmpnam函数,功能:得到临时文件路径 fgetc函数,功能:输入一个字符(文件) fgets函数,功能:字符串输入(文件) fputc函数,功能:字符输出(文件) fputs函数,功能:字符串输出(文件) gets函数,功能:字符串输入(控制台) getchar函数,功能:字符输入(控制台) getc函数,功能:字符输入(控制台) putc函数,功能:字符输出(控制台) putchar函数,功能:字符输出(控制台) ungetc函数,功能:字符输出到流的头部 fread函数,功能:直接流读操作 fwrite函数,功能:直接流写操作 fgetpos函数,功能:得到文件位置 fsetpos函数,功能:文件位置设置 fseek函数,功能:文件位置移动 ftell函数,功能:得到文件位置 remind函数,功能:文件位置复零位 perror函数,功能:得到错误提示字符串 clearerr函数,功能:错误清除 puts函数,功能:字符串输出(控制台)

C语言头文件的使用与写法

C语言头文件的使用与写法。 2009年04月20日星期一23:12 C语言中的.h文件和我认识由来已久,其使用方法虽不十分复杂,但我却是经过了几个月的“不懂”时期,几年的“一知半解”时期才逐渐认识清楚他的本来面目。揪其原因,我的驽钝和好学而不求甚解固然是原因之一,但另外还有其他原因。原因一:对于较小的项目,其作用不易被充分开发,换句话说就是即使不知道他的详细使用方法,项目照样进行,程序在计算机上照样跑。原因二:现在的各种C语言书籍都是只对C语言的语法进行详细的不能再详细的说明,但对于整个程序的文件组织构架却只字不提,找了好几本比较著名的C语言著作,却没有一个把.h文件的用法写的比较透彻的。下面我就斗胆提笔,来按照我对.h 的认识思路,向大家介绍一下。 让我们的思绪乘着时间机器回到大学一年级。C原来老师正在讲台上讲着我们的第一个C语言程序: Hello world! 文件名 First.c main() { printf(“Hello world!”); } 例程-1 看看上面的程序,没有.h文件。是的,就是没有,世界上的万物都是经历从没有到有的过程的,我们对.h的认识,我想也需要从这个步骤开始。这时确实不需要.h文件,因为这个程序太简单了,根本就不需要。那么如何才能需要呢?让我们把这个程序变得稍微复杂些,请看下面这个, 文件名 First.c printStr() { printf(“Hello world!”); } main() {

printStr() } 例程-2还是没有, 那就让我们把这个程序再稍微改动一下. 文件名 First.c main() { printStr() } printStr() { printf(“Hello world!”); } 例程-3等等,不就是改变了个顺序嘛, 但结果确是十分不同的. 让我们编译一下例程-2和例程-3,你会发现例程-3是编译不过的.这时需要我们来认识一下另一个C语言中的概念:作用域.我们在这里只讲述与.h文件相关的顶层作用域, 顶层作用域就是从声明点延伸到源程序文本结束, 就printStr()这个函数来说,他没有单独的声明,只有定义,那么就从他定义的行开始,到first.c文件结束, 也就是说,在例程-2的main()函数的引用点上,已经是他的作用域. 例程-3的main()函数的引用点上,还不是他的作用域,所以会编译出错. 这种情况怎么办呢? 有两种方法 ,一个就是让我们回到例程-2, 顺序对我们来说没什么, 谁先谁后不一样呢,只要能编译通过,程序能运行, 就让main()文件总是放到最后吧. 那就让我们来看另一个例程,让我们看看这个方法是不是在任何时候都会起作用. 文件名 First.c play2() { play1() }

补充关于c语言头文件的知识

String.h C语言里面关于字符数组的函数定义的头文件,常用函数有strlen、strcmp、strcpy等等,更详细的可以到include文件夹里面查看该文件。 #include //设定插入点 #include //字符处理 #include //定义错误码 #include //浮点数处理 #include //文件输入/输出 #include //参数化输入/输出 #include //数据流输入/输出 #include //定义各种数据类型最值常量 #include //定义本地化函数 #include //定义数学函数 #include //定义输入/输出函数 #include //定义杂项函数及内存分配函数 #include //字符串处理 #include //基于数组的输入/输出 #include //定义关于时间的函数 #include //宽字符处理及输入/输出 #include //宽字符分类 2、标准C++ 其中包括的头文件如下(同上的不再注释) #include //STL 通用算法 #include //STL 位集容器 #include #include #include #include #include //复数类 #include #include #include #include #include //STL 双端队列容器 #include //异常处理类 #include

C语言 函数大全(头文件)

C标准库函数 abort stdlib. h abs stdlib. h acos math. h asctime time. h asin math. h assert assert.h atan math. h atan2 math. h atexit stdlib. h atof stdlib. h atoi stdlib. h atol stdlib. h bsearch stdlib. h BUFSIZ stdio. h calloc stdlib. h ceil math. h clearerr stdio. h clock time. h CLOCKS-PER-SEC time. h clock_t time. h cos math. h cosh math. h ctime time. h difftime time. h div stdlib. h div_t stdlib. h EDOM errno. h EOF stdio. h ERANGE errno. h errno errno. h exit stdlib. h EXIT_FAILURE stdlib. h EXIT_SUCCESS stdlib. h exp math. h fabs math. h fclose stdio. h feof stdio.h ferror stdio.h fflush stdio. h fgetc stdio.h fgetpos stdio. h

FILE stdio. h FILENAME-MAX stdio. h floor math. h isalpha ctype. h iscntrl ctype. h isdigit ctype. h isgraph ctype. h islower ctype. h isprint ctype. h ispunct ctype. h isspace ctype. h isupper ctype. h isxdigit ctype. h jmp_buf setjmp. h labs stdlib. h LC_ALL locale. h LC_COLLATE locale. h LC_CTYPE locale. h LC_MONETARY locale. h LC_NUMERIC locale. h LC_TIME locale. h struct lconv locale. h ldexp math. h ldiv stdlib. h ldiv_t stdlib. h localeconv locale. h localtime time. h log math. h log10 math. h longjmp setjmp. h L_tmpnam stdio. h malloc stdlib. h mblen stdlib. h mbstowcs stdlib. h mbtowc stdlib. h MB_CUR_MAX stdlib. h memchr string. h memcmp string. h memcpy string. h memmove string. h memset string. h

标准C语言头文件

标准C语言头文件 ISO C标准定义的头文件(24项) 验证程序断言 支持复数算术运算 字符类型 出错码 浮点环境 浮点常量 整型格式转换 替代关系操作符宏 实现常量 局部类别 数学常量 非局部goto 信号 可变参数表 布尔类型和值 标准定义 整型 标准I/O库 实用程序库函数 字符串操作 时间和日期 宽字符支持 POSIX标准定义的必须的头文件(26项) 目录项 文件控制 路径名模式匹配类型 组文件 口令文件 正则表达式 终端I/O 符号常量 字扩展类型 Internet定义 Internet地址族 传输控制协议 select函数 套接字接口

c语言头文件的建立与使用

嵌入式c语言头文件的建立与使用 如何正确编写C语言头文件和与之相关联的c源程序文件,这首先就要了解它们的各自功能。要理解C文件与头文件(即.h)有什么不同之处,首先需要弄明白编译器的工作过程。 一般说来编译器会做以下几个过程: 1.预处理阶段 2.编译阶段,首先编译成纯汇编语句,再将之汇编成跟CPU相关的二进制码,生成各个目标文件(.obj文件) 3.连接阶段,将各个目标文件中的各段代码进行绝对地址定位,生成跟特定平台相关的可执行文件。 编译器在编译时是以C文件为单位进行的,也就是说如果你的项目中一个C文件都没有,那么你的项目将无法编译,连接器是以目标文件为单位,它将一个或多个目标文件进行函数与变量的重定位,生成最终的可执行文件。 为了生成一个最终的可执行文件,就需要一些目标文件,也就是首先要有C文件,而这些C文件中又需要一个main()函数作为可执行程序的入口,那么我们就从从这一个C文件入手,引入头文件概念。

假定这个C文件内容如下: #include #include"mytest.h" int main(int argc,char**argv) { test=25; printf("test........... %d\n",test); } 头文件"mytest.h"包含如下内容: int test; 现在以这个例子来讲解编译器的工作: 1.预处理阶段:编译器以C文件作为一个单元,首先读这个C文件,发现第一句与第二句是包含一个头文件,就会在所有搜索路径中寻找这两个文件,找到之后,就会将相应头文件中的宏,变量,函数声明,嵌套的头文件包含等,进行依赖关系检测,并进行宏替换,看是否有重复声

C语言头文件大全

C系统提供了丰富的系统文件,称为库文件,C的库文件分为两类,一类是扩展名为".h"的文件,称为头文件,在前面的包含命令中我们已多次使用过。在".h"文件中包含了常量定义、类型定义、宏定义、函数原型以及各种编译选择设置等信息。另一类是函数库,包括了各种函数的目标代码,供用户在程序中调用。通常在程序中调用一个库函数时,要在调用之前包含该函数原型所在的".h" 文件。 下面给出Turbo C的全部".h"文件。 Turbo C头文件 ALLOC.Hν说明内存管理函数(分配、释放等)。 ASSERT.Hν定义assert调试宏。 BIOS.Hν说明调用IBM—PC ROM BIOS子程序的各个函数。CONIO.Hν说明调用DOS控制台I/O子程序的各个函数。 CTYPE.Hν包含有关字符分类及转换的名类信息(如isalpha和toascii 等)。 DIR.Hν包含有关目录和路径的结构、宏定义和函数。 DOS.Hν定义和说明MSDOS和8086调用的一些常量和函数。ERRON.Hν定义错误代码的助记符。 FCNTL.Hν定义在与open库子程序连接时的符号常量。 FLOAT.Hν包含有关浮点运算的一些参数和函数。 GRAPHICS.Hν说明有关图形功能的各个函数,图形错误代码的常量定义,正对不同驱动程序的各种颜色值,及函数用到的一些特殊结构。 IO.Hν包含低级I/O子程序的结构和说明。 LIMIT.Hν包含各环境参数、编译时间限制、数的范围等信息。 MATH.Hν说明数学运算函数,还定了HUGE VAL 宏,说明了matherr和matherr子程序用到的特殊结构。 MEM.Hν说明一些内存操作函数(其中大多数也在STRING.H中说明)。PROCESS.Hν说明进程管理的各个函数,spawn…和EXEC …函数的结构说明。 SETJMP.Hν定义longjmp和setjmp函数用到的jmp buf类型,说明这两个函数。 SHARE.Hν定义文件共享函数的参数。 SIGNAL.Hν定义SIG[ZZ(Z] [ZZ)]IGN和SIG[ZZ(Z] [ZZ)]DFL常量,说明rajse和signal两个函数。 STDARG.Hν定义读函数参数表的宏。(如vprintf,vscarf函数)。STDDEF.Hν定义一些公共数据类型和宏。 STDIO.Hν定义Kernighan和Ritchie在Unix System V 中定义的标准和扩展的类型和宏。还定义标准I/O 预定义流:stdin,stdout和stderr,说明I/O 流子程序。 STDLIB.Hν说明一些常用的子程序:转换子程序、搜索/ 排序子程序等。STRING.Hν说明一些串操作和内存操作函数。 SYS\STAT.Hν定义在打开和创建文件时用到的一些符号常量。 SYS\TYPES.Hν说明ftime函数和timeb结构。

C语言头文件大全

C语言头文件大全 #include //设定插入点 #include //字符处理 #include //定义错误码 #include //浮点数处理 #include //文件输入/输出 #include //参数化输入/输出 #include //数据流输入/输出 #include //定义各种数据类型最值常量 #include //定义本地化函数 #include //定义数学函数 #include //定义输入/输出函数 #include //定义杂项函数及内存分配函数 #include //字符串处理 #include //基于数组的输入/输出 #include //定义关于时间的函数 #include //宽字符处理及输入/输出 #include //宽字符分类 ////////////////////////////////////////////////////////////////////////// ////// 标准C++ (同上的不再注释) #include //STL通用算法 #include //STL位集容器

#include #include #include #include #include //复数类 #include #include #include #include #include //STL双端队列容器 #include //异常处理类 #include #include //STL 定义运算函数(代替运算符)#include #include //STL 线性列表容器 #include //STL 映射容器 #include #include //基本输入/输出支持 #include //输入/输出系统使用的前置声明 #include #include //基本输入流 #include //基本输出流

C语言的头文件使用技巧

C语言中的.h文件和我认识由来已久,其使用方法虽不十分复杂,但我却是经过了几个月的“不懂”时期,几年的“一知半解”时期才逐渐认识清楚他的本来面目。揪其原因,我的驽钝和好学而不求甚解固然是原因之一,但另外还有其他原因。原因一:对于较小的项目,其作用不易被充分开发,换句话说就是即使不知道他的详细使用方法,项目照样进行,程序在计算机上照样跑。原因二:现在的各种C语言书籍都是只对C语言的语法进行详细的不能再详细的说明,但对于整个程序的文件组织构架却只字不提,找了好几本比较著名的C语言著作,却没有一个把.h文件的用法写的比较透彻的。下面我就斗胆提笔,来按照我对.h 的认识思路,向大家介绍一下。 让我们的思绪乘着时间机器回到大学一年级。C原来老师正在讲台上讲着我们的第一个C语言程序: Hello world! 文件名 First.c main() { printf(“Hello world!”); } 例程-1 看看上面的程序,没有.h文件。是的,就是没有,世界上的万物都是经历从没有到有的过程的,我们对.h的认识,我想也需要从这个步骤开始。这时确实不需要.h文件,因为这个程序太简单了,根本就不需要。那么如何才能需要呢?让我们把这个程序变得稍微复杂些,请看下面这个, 文件名 First.c printStr() { printf(“Hello world!”); } main() { printStr(); } 例程-2 还是没有, 那就让我们把这个程序再稍微改动一下. 文件名 First.c main() { printStr(); }

printStr() { printf(“Hello world!”); } 例程-3 等等,不就是改变了个顺序嘛, 但结果确是十分不同的. 让我们编译一下例程-2和例程-3,你会发现例程-3是编译不过的.这时需要我们来认识一下另一个C语言中的概念:作用域. 我们在这里只讲述与.h文件相关的顶层作用域, 顶层作用域就是从声明点延伸到源程序文本结束, 就printStr()这个函数来说,他没有单独的声明,只有定义,那么就从他定义的行开始,到first.c文件结束, 也就是说,在在例程-2的main()函数的引用点上,已经是他的作用域. 例程-3的main()函数的引用点上,还不是他的作用域,所以会编译出错. 这种情况怎么办呢? 有两种方法 ,一个就是让我们回到例程-2, 顺序对我们来说没什么, 谁先谁后不一样呢,只要能编译通过,程序能运行, 就让main()文件总是放到最后吧. 那就让我们来看另一个 例程,让我们看看这个方法是不是在任何时候都会起作用. 文件名 First.c play2() { ………………. play1(); ……………….. } play1(){ …………….. play2(); …………………… } main() { play1(); } 例程-4 也许大部分都会看出来了,这就是经常用到的一种算法, 函数嵌套, 那么让我们看看, play1和play2这两个函数哪个放到前面呢? 这时就需要我们来使用第二种方法,使用声明. 文件名 First.c play1();

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