C++头文件一览表.docx
- 文档编号:23558105
- 上传时间:2023-05-18
- 格式:DOCX
- 页数:25
- 大小:26.31KB
C++头文件一览表.docx
《C++头文件一览表.docx》由会员分享,可在线阅读,更多相关《C++头文件一览表.docx(25页珍藏版)》请在冰豆网上搜索。
C++头文件一览表
传统C++
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
标准C++ (同上的不再注释)
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include //STL线性列表容器
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
usingnamespacestd;
C99增加
#include
#include
#include
#include
#include
#include
一、预编译头文件说明
所谓头文件预编译,就是把一个工程(Project)中使用的一些MFC标准头文件(如Windows.H、Afxwin.H)预先编译,以后该工程编译时,不再编译这部分头文件,仅仅使用预编译的结果。
这样可以加快编译速度,节省时间。
预编译头文件通过编译stdafx.cpp生成,以工程名命名,由于预编译的头文件的后缀是“pch”,所以编译结果文件是projectname.pch。
编译器通过一个头文件stdafx.h来使用预编译头文件。
stdafx.h这个头文件名是可以在project的编译设置里指定的。
编译器认为,所有在指令#include"stdafx.h"前的代码都是预编译的,它跳过#include"stdafx.h"指令,使用projectname.pch编译这条指令之后的所有代码。
(在编译的时候,在#include"stdafx.h"前面的语句都不予以编译)
因此,所有的CPP实现文件第一条语句都是:
#include"stdafx.h"。
另外,每一个实现文件CPP都包含了如下语句:
#ifdef_DEBUG
#undefTHIS_FILE
staticcharTHIS_FILE[]=__FILE__;
#endif
这是表示,如果生成调试版本,要指示当前文件的名称。
__FILE__是一个宏,在编译器编译过程中给它赋值为当前正在编译的文件名称。
平常找不到文件尾的时候,其解决方案如下:
默认情况下使用预编译头(/Yu),不明白的在加入新.h文件后编译时总出现fatalerrorC1010:
在查找预编译头指令时遇到意外的文件结尾的错误。
解决方法是在在include头文件的地方加上#include"stdafx.h",或者打项目属性,找到“C/C++”文件夹,单击“预编译头”属性页。
修改“创建/使用预编译头”属性为“不使用预编译头”。
三、预处理的由来
在C++的历史发展中,有很多的语言特征(特别是语言的晦涩之处)来自于C语言,预处理就是其中的一个。
C++从C语言那里把C语言预处理器继承过来(C语言预处理器,被Bjarne博士简称为Cpp,不知道是不是CProgramPreprocessor的简称)。
四、常见的预处理功能
预处理器的主要作用就是把通过预处理的内建功能对一个资源进行等价替换,最常见的预处理有:
文件包含,条件编译、布局控制和宏替换4种。
文件包含:
#include是一种最为常见的预处理,主要是做为文件的引用组合源程序正文。
条件编译:
#if,#ifndef,#ifdef,#endif,#undef等也是比较常见的预处理,主要是进行编译时进行有选择的挑选,注释掉一些指定的代码,以达到版本控制、防止对文件重复包含的功能。
布局控制:
#pragma,这也是我们应用预处理的一个重要方面,主要功能是为编译程序提供非常规的控制流信息。
宏替换:
#define,这是最常见的用法,它可以定义符号常量、函数功能、重新命名、字符串的拼接等各种功能。
五、预处理指令
预处理指令的格式如下:
#directivetokens
#符号应该是这一行的第一个非空字符,一般我们把它放在起始位置。
如果指令一行放不下,可以通过“\”进行控制,例如:
#defineErrorif(error)exit
(1)
等价于:
#defineError\
if(error)exit
(1)
下面我们看一下常见的预处理指令:
#define宏定义
#undef未定义宏
#include文本包含
#ifdef如果宏被定义就进行编译
#ifndef如果宏未被定义就进行编译
#endif结束编译块的控制
#if表达式非零就对代码进行编译
#else作为其他预处理的剩余选项进行编译
#elif这是一种#else和#if的组合选项//后面有例子的
#line改变当前的行数和文件名称
#error输出一个错误信息
#pragma为编译程序提供非常规的控制流信息
下面我们对这些预处理进行一一的说明,考虑到宏的重要性和繁琐性,我们把它放到最后讲。
六、文件包含指令
这种预处理使用方式是最为常见的,平时我们编写程序都会用到,最常见的用法是:
#include
#include
#include"IO.h"//用户自定义的头文件
#include"../file.h"//UNIX下的父目录下的头文件
#include"/usr/local/file.h"//UNIX下的完整路径
#include"..\file.h"//Dos下的父目录下的头文件
#include"\usr\local\file.h"//Dos下的完整路径
C头文件大全
分类函数,所在函数库为ctype.h
intisalpha(intch) 若ch是字母('A'-'Z','a'-'z')返回非0值,否则返回0
intisalnum(intch) 若ch是字母('A'-'Z','a'-'z')或数字('0'-'9')
返回非0值,否则返回0
intisascii(intch) 若ch是字符(ASCII码中的0-127)返回非0值,否则返回0
intiscntrl(intch) 若ch是作废字符(0x7F)或普通控制字符(0x00-0x1F)
返回非0值,否则返回0
intisdigit(intch) 若ch是数字('0'-'9')返回非0值,否则返回0
intisgraph(intch) 若ch是可打印字符(不含空格)(0x21-0x7E)返回非0值,否则返回0
intislower(intch) 若ch是小写字母('a'-'z')返回非0值,否则返回0
intisprint(intch) 若ch是可打印字符(含空格)(0x20-0x7E)返回非0值,否则返回0
intispunct(intch) 若ch是标点字符(0x00-0x1F)返回非0值,否则返回0
intisspace(intch) 若ch是空格(''),水平制表符('\t'),回车符('\r'),
走纸换行('\f'),垂直制表符('\v'),换行符('\n')
返回非0值,否则返回0
intisupper(intch) 若ch是大写字母('A'-'Z')返回非0值,否则返回0
intisxdigit(intch)若ch是16进制数('0'-'9','A'-'F','a'-'f')返回非0值,
否则返回0
inttolower(intch) 若ch是大写字母('A'-'Z')返回相应的小写字母('a'-'z')
inttoupper(intch) 若ch是小写字母('a'-'z')返回相应的大写字母('A'-'Z')
数学函数,所在函数库为math.h、stdlib.h、string.h、float.h
int abs(inti) 返回整型参数i的绝对值
double cabs(structcomplexznum) 返回复数znum的绝对值
double fabs(doublex) 返回双精度参数x的绝对值
long labs(longn) 返回长整型参数n的绝对值
double exp(doublex) 返回指数函数ex的值
doublefrexp(doublevalue,int*eptr) 返回value=x*2n中x的值,n存贮在eptr中
doubleldexp(doublevalue,intexp); 返回value*2exp的值
double log(doublex) 返回logex的值
doublelog10(doublex) 返回log10x的值
double pow(doublex,doubley) 返回xy的值
doublepow10(intp) 返回10p的值
double sqrt(doublex) 返回+√x的值
double acos(doublex) 返回x的反余弦cos-1(x)值,x为弧度
double asin(doublex) 返回x的反正弦sin-1(x)值,x为弧度
double atan(doublex) 返回x的反正切tan-1(x)值,x为弧度
doubleatan2(doubley,doublex) 返回y/x的反正切tan-1(x)值,y的x为弧度
double cos(doublex) 返回x的余弦cos(x)值,x为弧度
double sin(doublex) 返回x的正弦sin(x)值,x为弧度
double tan(doublex) 返回x的正切tan(x)值,x为弧度
double cosh(doublex) 返回x的双曲余弦cosh(x)值,x为弧度
double sinh(doublex) 返回x的双曲正弦sinh(x)值,x为弧度
double tanh(doublex) 返回x的双曲正切tanh(x)值,x为弧度
doublehypot(doublex,doubley) 返回直角三角形斜边的长度(z),
x和y为直角边的长度,z2=x2+y2
double ceil(doublex) 返回不小于x的最小整数
doublefloor(doublex) 返回不大于x的最大整数
void srand(unsignedseed) 初始化随机数发生器
int rand() 产生一个随机数并返回这个数
double poly(doublex,intn,doublec[])从参数产生一个多项式
double modf(doublevalue,double*iptr)将双精度数value分解成尾数和阶
double fmod(doublex,doubley) 返回x/y的余数
doublefrexp(doublevalue,int*eptr) 将双精度数value分成尾数和阶
double atof(char*nptr) 将字符串nptr转换成浮点数并返回这个浮点数
double atoi(char*nptr) 将字符串nptr转换成整数并返回这个整数
double atol(char*nptr) 将字符串nptr转换成长整数并返回这个整数
char *ecvt(doublevalue,intndigit,int*decpt,int*sign)
将浮点数value转换成字符串并返回该字符串
char *fcvt(doublevalue,intndigit,int*decpt,int*sign)
将浮点数value转换成字符串并返回该字符串
char *gcvt(doublevalue,intndigit,char*buf)
将数value转换成字符串并存于buf中,并返回buf的指针
char *ultoa(unsignedlongvalue,char*string,intradix)
将无符号整型数value转换成字符串并返回该字符串,radix为转换时所用基数
char *ltoa(longvalue,char*string,intradix)
将长整型数value转换成字符串并返回该字符串,radix为转换时所用基数
char *itoa(intvalue,char*string,intradix)
将整数value转换成字符串存入string,radix为转换时所用基数
doubleatof(char*nptr)将字符串nptr转换成双精度数,并返回这个数,错误返回0
int atoi(char*nptr)将字符串nptr转换成整型数, 并返回这个数,错误返回0
long atol(char*nptr)将字符串nptr转换成长整型数,并返回这个数,错误返回0
doublestrtod(char*str,char**endptr)将字符串str转换成双精度数,并返回这个数,
long strtol(char*str,char**endptr,intbase)将字符串str转换成长整型数,
并返回这个数,
int matherr(structexception*e)
用户修改数学错误返回信息函数(没有必要使用)
double _matherr(_mexcepwhy,char*fun,double*arg1p,
double*arg2p,doubleretval)
用户修改数学错误返回信息函数(没有必要使用)
unsignedint_clear87() 清除浮点状态字并返回原来的浮点状态
void _fpreset() 重新初使化浮点数学程序包
unsignedint_status87() 返回浮点状态字
目录函数,所在函数库为dir.h、dos.h
int chdir(char*path)使指定的目录path(如:
"C:
\\WPS")变成当前的工作目录,成
功返回0
intfindfirst(char*pathname,structffblk*ffblk,intattrib)查找指定的文件,成功
返回0
pathname为指定的目录名和文件名,如"C:
\\WPS\\TXT"
ffblk为指定的保存文件信息的一个结构,定义如下:
┏━━━━━━━━━━━━━━━━━━┓
┃structffblk ┃
┃{ ┃
┃charff_reserved[21];/*DOS保留字*/┃
┃charff_attrib; /*文件属性*/┃
┃int ff_ftime; /*文件时间*/┃
┃int ff_fdate; /*文件日期*/┃
┃longff_fsize; /*文件长度*/┃
┃charff_name[13]; /*文件名*/ ┃
┃} ┃
┗━━━━━━━━━━━━━━━━━━┛
attrib为文件属性,由以下字符代表
┏━━━━━━━━━┳━━━━━━━━┓
┃FA_RDONLY只读文件┃FA_LABEL 卷标号┃
┃FA_HIDDEN隐藏文件┃FA_DIREC 目录 ┃
┃FA_SYSTEM系统文件┃FA_ARCH 档案 ┃
┗━━━━━━━━━┻━━━━━━━━┛
例:
structffblkff;
findfirst("*.wps",&ff,FA_RDONLY);
int findnext(structffblk*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(intdrive,char*direc)此函数返回指定驱动器的当前工作目录名称
drive指定的驱动器(0=当前,1=A,2=B,3=C等)
direc保存指定驱动器当前工作路径的变量 成功返回0
char*getcwd(char*buf,iintn)此函数取当前工作目录并存入buf中,直到n个字
节长为为止.错误返回NULL
int getdisk()取当前正在使用的驱动器,返回一个整数(0=A,1=B,2=C等)
int
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 文件 一览表