1、C+标准函数库C+标准函数库 编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望(C+标准函数库)的内容能够给您的工作和学习带来便利。同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快 业绩进步,以下为C+标准函数库的全部内容。1、常用数学函数头文件 #include math 或者 include math。h 函数原型功能备注int abs(int x)求整数x的绝对值long
2、labs(long x)求长整型数x的绝对值double fabs(double x)求实数x的绝对值double sqrt(double x)求的值double pow(double x, double y)求的值double exp(double x)求的值double log(double x)计算In(x)的值double log10(double x)计算的值double sin(double x)计算sin(x)的值double cos(double x)计算cos(x)的值double tan(double x)计算tan(x)的值double asin(double x)计算a
3、rsin(x)的值double acos(double x)计算arcos(x)的值double atan(double x)计算arctan(x)的值doublesinh(doublex)计算x的双曲正弦函数值double cosh(double x)计算x的双曲余弦值doubletanh(doublex)x的双曲正切函数值double fmod(double x,double y)求x/y的余数(双精度数),返回值为x-ny(n为整数商,非四舍五入);与x的符号相同。doubleceil(doublex)不小于x的最小整数(返回值为double型)doublefloor(doublex)不
4、大于x的最大整数(返回值为double型)double modf(double x, double *y)取x的整数部分送到y所指向的单元格中2、常用字符串处理函数头文件 #include cstring 或者 #include 函数原型功能备注char *strcpy(char *p1, const char p2)将p2所指向的字符串拷贝到p1所指向的存储区中。p1的长度一定要大于p2的实际长度。char strncpy(char *p1, const char p2, size_t n)将p2所指向的字符串的前n个字符拷贝到p1所指向的存储区中p1的长度要大于n.char *strcat
5、(char p1, constchar *p2)将p2所指向的字符串连接到p1所指向的字符串结尾处,覆盖p1结尾处的0。p1的长度要足够容纳合并后的整个字符串,包括0.char *strncat(char *p1, const char p2, size_t n)将p2所指向的字符串的前n个字符连接到p1所指向的字符串结尾处,覆盖p1结尾处的0。p1的长度要足够容纳合并后的整个字符串,包括0。int strcmp(const char p1, const char *p2)比较p1,p2所指向的两个字符串的大小。若p1=p2,则返回零;若p1p2,则返回正数;若pr1函数原型功能备注void
6、abort(void)异常终止当前进程Visual C+中,如果以abort函数终止程序,则会在debug模式运行时弹出错误提示的对话框。Linux中,abort()会产生core dump。void exit(int status)终止当前进程,返回(如果有父进程的话,否则返回给OS。 不同的值代表什么意义都是由编程者自己决定。习惯上,exit(0):正常结束程序运行;exit(非0):非正常结束程序运行。父进程可以wait( amp;ret ); waitpid( pid, amp;ret ); 来接收,ret 中的值就是 exit() 返回的值。int atexit (void (fun
7、c) (void)注册终止函数(即main执行结束后调用的函数)其参数是一个指向一个没有参数也没有返回值的个函数指针.在一个程序中最多可以用atexit()注册32个处理函数,这些处理函数的调用顺序与其注册的顺序相反,也即最先注册的最后调 用,最后注册的最先调用。同一个函数如若登记多次,则也会被调用多次。一般程序执行到main()的结束就完成了,如果想在程序结束时做一些事情,可以尝 试着用atexit() 函数。程序在输出 ”atexit挂接的函数”后即终止。double atof(const char s)将s所指向的字符串转换成浮点数跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,
8、而再遇到非数字或字符串结束时(0)才结束转换,并将结果返回。成功则返回转化后的整数值,失败返回0。参数s字符串可包含正负号、小数点或E(e)来表示指数部分.int atoi(const char s)将s所指向的字符串转换成整数long atol(const char *s)将s所指的字符串转换成长整数int rand(void)产生一个随机整数void srand(unsigned int)初始化随机数产生器int system(const char s)将s所指向的字符串作为一个可执行文件,并加以执行max(a, b)求两个数中的大数min(a,b)求两个数中的小数(1) return语句
9、、exit()函数和abort()函数的区别 return语句exit()函数abort()函数级别return是语言级别的,它表示了调用堆栈的返回,当前函数的结束。其参数返回到上一级函数。直到main函数中,表示整个程序的终止。 exit是系统调用级别的,通常用在子进程中,它表示了当前进程的结束。如果有父进程的话,其值返回给父进程,否则返回给OS。 但,exit本身不是系统调用,而是一个C标准库的函数而已,在stdlib里面,系统调用是exit内部实现去完成的。exit()通常是用在子程序中用来终结程序用的,使用后程序自动结束跳回操作系统。清理工作因为有stack unwinding(堆栈解
10、退),所以执行时会调用局部析构函数,清理main或其他函数中的局部对象(自动对象)和局部静态对象。 首先会执行由atexit()函数登记的函数;然后调用全局和静态对象析构函数,析构全局和静态对象.因为没有stack unwinding,所以决不会析构局部变量(自动对象)。同时刷新所有输出流、关闭所有打开的流并且关闭通过标准I/O函数tmpfile()创建的临时文件。调用时,不进行任何清理工作.直接终止程序。注:在main函数中,调用return后,会隐式地交由系统调用exit()函数,结束主进程.在C+、C、Ruby、Java等面向对象语言中,因为exit()和abort()不销毁自动变量,容
11、易造成内存泄露,所以最好不要使用exit()和abort()。(2) atexit() 函数: 程序例: #include #include stdlib.h void exit_fn1(void) printf(”Exit function 1 calledn); void exit_fn2(void) printf(Exit function #2 calledn”); int main(void) atexit(exit_fn1); atexit(exit_fn2); return 0; 输出: Exit function #2 called Exit function #1 calle
12、d4、实现键盘和文件输入/输出的成员函数头文件#include iostream 或者 #include iostream.h函数原型功能返回值cin v输入值送给变量cout exp输出表达式exp的值istream istream:get(char c)输入字符送给变量cistream istream::get(char , int , char = n)输入一行字符串istream istream:getline(char , int , char = n)输入一行字符串void ifstream:open(const char,int=ios:in,int = filebuf::ope
13、nprot )打开输入文件void ofstream:open(const char*,int=ios::out,int = filebuf:openprot)打开输出文件void fsream:open(const char*,int ,int = filebuf:openprot)打开输入/输出文件ifstream:ifstream(const char*,int = ios::in,int = filebuf:openprot)构造函数打开输入文件ofstream:ofstream(const char*,int=ios:out,int = filebuf::openprot)构造函数打
14、开输出函数fstream::fstream(const char, int,int = filebuf::openprot)构造函数打开输入/输出文件void istream:close()关闭输入文件void ofsream:close()关闭输出文件void fsream::close()关闭输入/输出文件istream & istream::read(char, int)从文件中读取数据ostream istream::write(const char*,int)将数据写入文件中int ios:eof()判断是否到达打开文件的尾部1为到达2为没有istream istream:seekg(streampos)移动输入文件的指针istream istream:seekg(streamoff,ios::seek_dir)移动输入文件的指针streampos istream:tellg()取输入文件的指针ostream & ostream::seekp(streampos)移动输出文件的指针ostream ostream:seekp(streamoff,ios:seek_dir)移动输出文件的指针streampos ostream:tellp()取输出文件的指针