C、C++头文件、库函数说明

合集下载

总结c程序的结构和书写规则

总结c程序的结构和书写规则

总结c程序的结构和书写规则C程序的结构和书写规则可以总结如下:1. 头文件引用:在程序开始的地方引用需要使用的头文件,以便程序能够访问所需的函数和变量声明。

2. 定义全局变量:在函数之外声明全局变量,以便多个函数能够访问并共享这些变量。

3. 函数声明:在程序开始或函数最前面声明要使用的函数,以便编译器可以识别函数的存在并进行正确的编译。

4. 主函数:每个C程序都必须包含一个主函数,它是程序的入口点。

主函数一般形式为 "int main() { ... }"。

5. 注释:使用注释向代码中添加说明。

注释可以单行以"//"开头,也可以使用多行注释 "/\* \*/"。

6. 变量定义和赋值:在函数中定义和初始化变量。

变量定义时可以直接赋值或者在后续语句中赋值。

7. 控制流语句:使用if、else、switch等控制流语句来进行条件判断和根据不同条件执行不同的代码块。

8. 循环语句:使用for、while、do-while等循环语句来重复执行某段代码。

9. 函数定义:在程序中定义自定义函数,以便在需要的地方调用这些函数。

函数定义的一般形式为 "返回类型函数名(参数列表) { ... }"。

10. 返回语句:使用return语句来从函数中返回一个值,并将控制权交还给调用函数。

11. 文件操作:通过使用标准库中的文件操作函数来读取和写入文件。

12. 错误处理:对于可能发生错误的操作,需要进行适当的错误处理,例如使用条件判断来检查是否发生错误。

总的来说,C程序的结构和书写规则包括头文件引用、全局变量定义、函数声明、主函数、注释、变量定义和赋值、控制流语句、循环语句、函数定义、返回语句、文件操作和错误处理等要素。

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

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

c语言函数库目录第一章(C标准库) ............................................................... 错误!未定义书签。

1. <>:诊断............................................................................. 错误!未定义书签。

2. <>:字符类别测试 ............................................................ 错误!未定义书签。

3. <>:错误处理..................................................................... 错误!未定义书签。

4. <>:整型常量..................................................................... 错误!未定义书签。

5. <>:地域环境..................................................................... 错误!未定义书签。

6. <>:数学函数..................................................................... 错误!未定义书签。

7. <>:非局部跳转................................................................. 错误!未定义书签。

8. <>:信号............................................................................. 错误!未定义书签。

c语言标准库手册

c语言标准库手册

c语言标准库手册
C语言标准库手册是一个非常重要的资源,它提供了关于C语言标准库的详细信息,包括函数、常量、数据类型、头文件等方面的说明。

这个标准库手册可以作为C语言程序员在编写程序时的参考手册。

以下是C语言标准库手册的一些重要组成部分:
1. 函数:C语言标准库中包含了大量的函数,包括数学函数、字符串处理函数、文件操作函数等等。

这些函数都是以库的形式提供的,程序员可以直接调用这些函数,而不需要自己编写实现。

2. 常量:C语言标准库中定义了一些常量,这些常量可以在程序中直接使用,而不需要自己定义。

例如,定义了表示不同的数据类型的常量,如char、int、float、double等。

3. 数据类型:C语言标准库中定义了一些数据类型,这些数据类型可以在程序中直接使用。

例如,定义了表示不同大小和范围的整数类型和浮点数类型。

4. 头文件:C语言标准库中的头文件包含了库函数的声明、宏定义和数据类型的定义等。

在程序中需要使用标准库中的函数或常量时,需要包含相应的头文件。

总之,C语言标准库手册是一个非常重要的资源,它可以帮助程序员更好地理解和使用C语言标准库,提高编程效率和代码质量。

c语言的程序构成

c语言的程序构成

c语言的程序构成
C语言的程序构成包括以下几部分:
1. 声明部分(头文件包含):声明部分通常包括引用各种库和头文件,以及定义全局变量和宏等。

2. 函数定义部分:程序中的逻辑主体是通过函数进行定义和实现的。

通常包括主函数(main函数)以及其他自定义函数。

3. 变量和数据类型定义:在C语言中,需要先声明变量的数据类型,然后再进行实际的变量定义。

4. 语句和表达式:C语言程序的执行是通过一系列的语句和表达式来完成的。

常见的语句包括条件语句(if-else语句、switch语句)、循环语句(for循环、while循环、do-while循环)以及控制语句(break、continue、return等)。

5. 输入输出(I/O)操作:C语言提供了一系列的标准输入输出函数,如printf、scanf等,用于输入输出数据。

6. 注释:程序中的注释是对代码进行解释和说明的内容。

C语言中的注释形式有单行注释(//)和多行注释(/* ... */)。

总体来说,C语言的程序构成包括声明部分、函数定义、变量和数据类型定义、语句和表达式、I/O操作以及注释等多个方面,这些部分协同工作,形成一个完整的C语言程序。

C语言这些常用的标准库(头文件),你不得不知道...

C语言这些常用的标准库(头文件),你不得不知道...

C语⾔这些常⽤的标准库(头⽂件),你不得不知道...有很多⼯程师喜欢⾃⼰封装⼀些标准库已有的函数,其实⾃⼰封装的函数,并不⼀定⽐标准库好,有时候反⽽代码更冗余,且有bug。

下⾯⼩编就来分享⼀下C语⾔常见的⼀些标准库。

标准头⽂件包括:<asset.h><ctype.h><errno.h><float.h><limits.h><locale.h><math.h><stdio.h><signal.h><time.h><stddef.h><stdlib.h><string.h><stdarg.h><setjmp.h>⼀、标准定义(<stddef.h>)⽂件<stddef.h>⾥包含了标准库的⼀些常⽤定义,⽆论我们包含哪个标准头⽂件,<stddef.h>都会被⾃动包含进来。

这个⽂件⾥定义:●类型size_t(sizeof运算符的结果类型,是某个⽆符号整型);●类型ptrdiff_t(两个指针相减运算的结果类型,是某个有符号整型);●类型wchar_t(宽字符类型,是⼀个整型,其中⾜以存放本系统所⽀持的所有本地环境中的字符集的所有编码值。

这⾥还保证空字符的编码值为0);●符号常量NULL(空指针值);●宏offsetot (这是⼀个带参数的宏,第⼀个参数应是⼀个结构类型,第⼆个参数应是结构成员名。

offsetot(s,m)求出成员m在结构类型t的变量⾥的偏移量)。

注:其中有些定义也出现在其他头⽂件⾥(如NULL)。

⼆、错误信息(<errno.h>)<errno.h>定义了⼀个int类型的表达式errno,可以看作⼀个变量,其初始值为0,⼀些标准库函数执⾏中出错时将它设为⾮0值,但任何标准库函数都设置它为0。

c语言专业术语解释

c语言专业术语解释

c语言专业术语解释
C语言专业术语解释:
1. 编译器:编译器是计算机程序,用于将高级语言源代码转换为机器可以理解的机器语言,以便计算机能够执行它们。

2. 内部函数:内部函数是由C语言编译器定义的函数,它们在编译器的编译过程中被编译,可以实现内置的功能,如内存管理,字符串处理,运算符重载等。

3. 头文件:头文件是一种程序文件,其中包含编译器所需的许多信息,如函数说明,常量定义等,它们可以帮助编译器识别代码中的标识符,并根据头文件中的信息检查标识符是否正确使用。

4. 函数库:函数库是指编程语言中已经定义好的一些函数,这些函数可以用来解决特定的任务,如数学运算,字符串处理等。

5. 预处理器:预处理器是C语言的一种编译器指令,它可以在编译程序启动之前处理源代码,它可以添加新的宏定义,宏函数,头文件等。

6. 宏定义:宏定义是一种C语言宏,它可以用来传递给编译器一条指令,告诉它在处理源代码时要替换某些单词或短语。

7. 字符串:字符串是C语言中的一种数据类型,它表示一个由字符序列组成的特殊类型的数据。

8. 存储器分配:存储器分配是指系统在运行时根据需要为程序分配内存,以便程序可以使用。

9. 内存管理:内存管理是指操作系统中程序的内存资源的管理,
它包括内存的分配和释放,以及内存的有效利用。

10. 指针:指针是C语言中一种特殊变量,它可以指向内存中的一块地址,并可以访问该地址上的值。

c语言基本格式

c语言基本格式

c语言基本格式
C语言的基本格式包括以下几个方面:
1. 头文件:C程序中需要包含一些标准库头文件,如stdio.h、stdlib.h、string.h等,用于提供一些常用的函数和数据类型。

2. 定义数据类型:C语言中需要先定义数据类型,包括整型、浮点型、字符型等,用于定义变量和常量。

3. 函数定义:C程序由函数组成,需要先定义函数,包括自定义函数和标准库函数。

函数定义包括函数名、参数列表、返回值类型和函数体。

4. 主函数:C程序从主函数开始执行,主函数包括函数头和函数体。

函数头包括函数名和参数列表,函数体包括一些语句和函数调用。

5. 程序注释:C程序中可以使用注释来对代码进行说明和解释,注释包括单行注释和多行注释。

6. 控制语句:C语言中包括一些控制语句,如if语句、switch语句、while语句、for语句等,用于控制程序的流程。

7. 函数调用:C程序中需要调用一些函数来完成特定的任务,函数调用包括函数名、参数和返回值。

8. 变量定义:C程序中需要定义变量,用于存储数据和参与计算。

变量包括变量名、变量类型和变量值。

以上是C语言的基本格式,它们共同构成了C程序的基本框架和实现方式。

C语言头文件源文件

C语言头文件源文件

C语⾔头⽂件源⽂件C语⾔头⽂件源⽂件1、头⽂件与源⽂件头⽂件⽤于声明接⼝函数,格式如下如创建test.h#ifndef _TEST_H_#define _TEST_H_/*接⼝函数的申明*/#endif#ifndef _TEST_H_#define _TEST_Hint sum(int x, int y);void swap(int *x, int *y);int max(int x, int y);#endif源⽂件⽤于接⼝函数的实现,源⽂件中只写接⼝函数的实现不能写main()函数#include <stdio.h>#include "test.h"int sum(int x, int y){return x+y;}void swap(int *x, int *y){int tmp;tmp = *x;*x = *y;*y = tmp;}int max(int x, int y){return (x>y)? x : y;}2、⽤户⽂件头⽂件和源⽂件⼀般是标准库⽂件或者⾃定义的库⽂件,⽤户⽂件则是我们⾃⼰写的⽂件,我们需要在⽤户⽂件中使⽤库⽂件或函数,就要包含所需的头⽂件#include <stdio.h>#include "test.h"int main(){int a = 1, b = 2;swap(&a, &b);printf("sum(%d,%d)=%d\n", a, b, sum(a, b));printf("a=%d, b=%d\n", a, b);printf("max(%d,%d)=%d\n", a, b, max(a, b));return0;}3、多⽂件编译当我们使⽤的时候,如果只编译main.c(gcc main.c)就会报错原因是在test.h中找不到函数的实现,所以在编译时要将源⽂件test.c和main.c⼀起编译(gcc main.c test.c),这样就不会报错4、makefile和shell脚本当我们包含的头⽂件特别多,在编译时就要编译很多源⽂件(gcc main.c test1.c test2.c test3.c test4.c ... testn.c),这样就会⾮常长,所以我们可以将命令⾏写到脚本⾥⾯进⾏批处理(1)shell脚本创建⼀个build.sh的脚本⽂件,然后将需要编译的命令⾏写到脚本⽂件⾥,编译时输⼊命令 sh build.sh就完成了编译(2)makefile(待续。

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

C/C++头文件说明1.概述C++标准库的所有头文件都没有扩展名。

C++标准库的内容总共在50个标准头文件中定义,其中18个提供了C库的功能。

<cname>形式的标准头文件【<complex>例外】其内容与ISO标准C包含的name.h头文件相同,但容纳了C++扩展的功能。

在<cname>形式标准的头文件中,与宏相关的名称在全局作用域中定义,其他名称在std命名空间中声明。

在C++中还可以使用name.h形式的标准C库头文件名。

C++标准库的内容分为10类:C1.语言支持C2.输入/输出C3.诊断C4.一般工具C5.字符串C6.容器C7.迭代器支持C8.算法C9.数值操作C10.本地化C1 标准库中与语言支持功能相关的头文件头文件描述<cstddef> 定义宏NULL和offsetof,以及其他标准类型size_t和ptrdiff_t。

与对应的标准C头文件的区别是,NULL是C++空指针常量的补充定义,宏offsetof接受结构或者联合类型参数,只要他们没有成员指针类型的非静态成员即可。

<limits> 提供与基本数据类型相关的定义。

例如,对于每个数值数据类型,它定义了可以表示出来的最大值和最小值以及二进制数字的位数。

<climits> 提供与基本整数数据类型相关的C样式定义。

这些信息的C++样式定义在<limits>中<cfloat> 提供与基本浮点型数据类型相关的C样式定义。

这些信息的C++样式定义在<limits>中<cstdlib> 提供支持程序启动和终止的宏和函数。

这个头文件还声明了许多其他杂项函数,例如搜索和排序函数,从字符串转换为数值等函数。

它与对应的标准C头文件stdlib.h 不同,定义了abort(void)。

abort()函数还有额外的功能,它不为静态或自动对象调用析构函数,也不调用传给atexit()函数的函数。

它还定义了exit()函数的额外功能,可以释放静态对象,以注册的逆序调用用atexit()注册的函数。

清除并关闭所有打开的C流,把控制权返回给主机环境。

<new> 支持动态内存分配<typeinfo> 支持变量在运行期间的类型标识<exception> 支持异常处理,这是处理程序中可能发生的错误的一种方式<cstdarg> 支持接受数量可变的参数的函数。

即在调用函数时,可以给函数传送数量不等的数据项。

它定义了宏va_arg、va_end、va_start以及va_list类型<csetjmp> 为C样式的非本地跳跃提供函数。

这些函数在C++中不常用<csignal> 为中断处理提供C样式支持C2 支持流输入/输出的头文件头文件描述< iostream> 支持标准流cin、cout、cerr和clog的输入和输出,它还支持多字节字符标准流wcin、wcout、wcerr和wclog。

<iomanip> 提供操纵程序,允许改变流的状态,从而改变输出的格式。

<ios> 定义iostream的基类<istream> 为管理输出流缓存区的输入定义模板类<ostream> 为管理输出流缓存区的输出定义模板类<sstream> 支持字符串的流输入输出<fstream> 支持文件的流输入输出<iosfwd> 为输入输出对象提供向前的声明<streambuf> 支持流输入和输出的缓存<cstdio> 为标准流提供C样式的输入和输出<cwchar> 支持多字节字符的C样式输入输出C3 与诊断功能相关的头文件头文件描述<stdexcept> 定义标准异常。

异常是处理错误的方式<cassert> 定义断言宏,用于检查运行期间的情形<cerrno> 支持C样式的错误信息C4 定义工具函数的头文件头文件描述<utility> 定义重载的关系运算符,简化关系运算符的写入,它还定义了pair类型,该类型是一种模板类型,可以存储一对值。

这些功能在库的其他地方使用<functional> 定义了许多函数对象类型和支持函数对象的功能,函数对象是支持operator()()函数调用运算符的任意对象<memory> 给容器、管理内存的函数和auto_ptr模板类定义标准内存分配器<ctime> 支持系统时钟函数C5 支持字符串处理的头文件头文件描述<string> 为字符串类型提供支持和定义,包括单字节字符串(由char组成)的string和多字节字符串(由wchar_t组成)<cctype> 单字节字符类别<cwctype> 多字节字符类别<cstring> 为处理非空字节序列和内存块提供函数。

这不同于对应的标准C库头文件,几个C样式字符串的一般C库函数被返回值为const和非const的函数对替代了<cwchar> 为处理、执行I/O和转换多字节字符序列提供函数,这不同于对应的标准C 库头文件,几个多字节C样式字符串操作的一般C库函数被返回值为const和非const的函数对替代了。

<cstdlib> 为把单字节字符串转换为数值、在多字节字符和多字节字符串之间转换提供函数C6 定义容器类的模板的头文件头文件描述<vector> 定义vector序列模板,这是一个大小可以重新设置的数组类型,比普通数组更安全、更灵活<list> 定义list序列模板,这是一个序列的链表,常常在任意位置插入和删除元素<deque> 定义deque序列模板,支持在开始和结尾的高效插入和删除操作<queue> 为队列(先进先出)数据结构定义序列适配器queue和priority_queue<stack> 为堆栈(后进先出)数据结构定义序列适配器stack<map> map是一个关联容器类型,允许根据键值是唯一的,且按照升序存储。

multimap 类似于map,但键不是唯一的。

<set> set是一个关联容器类型,用于以升序方式存储唯一值。

multiset类似于set,但是值不必是唯一的。

<bitset> 为固定长度的位序列定义bitset模板,它可以看作固定长度的紧凑型bool数组C7 支持迭代器的头文件头文件描述<iterator> 给迭代器提供定义和支持C8 有关算法的头文件头文件描述<algorithm> 提供一组基于算法的函数,包括置换、排序、合并和搜索<cstdlib> 声明C标准库函数bsearch()和qsort(),进行搜索和排序<ciso646> 允许在代码中使用and代替&&C9 有关数值操作的头文件头文件描述<complex> 支持复杂数值的定义和操作<valarray> 支持数值矢量的操作<numeric> 在数值序列上定义一组一般数学操作,例如accumulate和inner_product <cmath> 这是C数学库,其中还附加了重载函数,以支持C++约定<cstdlib> 提供的函数可以提取整数的绝对值,对整数进行取余数操作C10 有关本地化的头文件头文件描述<locale> 提供的本地化包括字符类别、排序序列以及货币和日期表示。

<clocale> 对本地化提供C样式支持2.C 头文件2.1.<assert.h>//设定插入点使用断言assert()宏是用于保证满足某个特定条件,用法是:assert(表达式);如果表达式的值为假,整个程序将退出,并输出一条错误信息。

如果表达式的值为真则继续执行后面的语句。

使用这个宏前需要包含头文件assert.h例如#include <stdio.h>#include <assert.h>void main(){float a,b;scan("%f %f",&a,&b);assert(b!=0);printf("%f\n",a/b);}以上的程序要计算A/B的值,因此要求b!=0,所以在程序中使用了assert()用于确保b!=0,如果b==0,则程序会退出。

2.2.<ctype.h>字符处理isalnum 判断一个字符是否是字符类的数字或者字母isalpha 判断一个字符是否是字母isblank 判断一个字符是空白字符(空格和水平制表符Tab)iscntrl 判断一个控制符(ascii码0-31之间的字符)isdigit 判断一个字符是否是字符类的数字isgraph 判断一个字符是否是可打印字符(ascii码33-126之间的字符)islower 判断一个字符是否是小写字母isprint 判断一个字符是否是包含空格在内的可打印字符(ascii码32-126之间的字符)ispunct 判断一个字符是否是除空格,字母,数字外的标点符号isspace 判断一个字符是空白字符(空格,换行符(\n),走纸符(\f),回车符(\r),垂直制表符(\v),水平制表符(\t))isupper 判断一个字符是否是大写字母isxdigit 判断一个字符是否是一个十六进制的数字tolower 将大些字符转换为小写toupper 将小写字符转换为大写实例1:isalnum()函数的作用是判断一个字符是否是字符类的数字或者字母:#include <stdio.h>#include <ctype.h>int main(void){if(isalnum('a'))printf("It's True"); // 显示It's Trueif(isalnum(4))printf("It's True"); // 显示''if(isalnum('4'))printf("It's True"); // 显示It's Truereturn 0;}实例2:isalpha()函数的作用是判断一个字符是否是字母:#include <stdio.h>#include <ctype.h>int main(void){if(isalpha('a'))printf("It's True"); // 显示It's Trueif(isalpha(4))printf("It's True"); // 显示''if(isalpha('4'))printf("It's True"); // 显示''return 0;}实例3:isblank()函数的作用是判断一个字符是空白字符(空格和水平制表符Tab),isspace()函数和isblank()函数类似,但是还包含空格,换行符(\n),走纸符(\f),回车符(\r),垂直制表符(\v),水平制表符(\t):#include <stdio.h>#include <ctype.h>int main(void){if(isblank(' ')) // 空格printf("It's True"); // 显示It's Trueif(isblank('\t')) // Tabprintf("It's True"); // 显示It's Trueif(isblank('\n')) // 换行printf("It's True"); // 显示''if(isblank('\r')) // 回车printf("It's True"); // 显示''if(isspace(' ')) // 空格printf("It's True"); // 显示It's Trueif(isspace('\t')) // Tabprintf("It's True"); // 显示It's Trueif(isspace('\n')) // 换行printf("It's True"); // 显示It's Trueif(isspace('\r')) // 回车printf("It's True"); // 显示It's Truereturn 0;}实例4:iscntrl()函数的作用是判断一个控制符(ascii码0-31之间的字符):#include <stdio.h>#include <ctype.h>int main(void){if(isblank(' ')) // 空格printf("It's True"); // 显示''if(isblank('\t')) // Tabprintf("It's True"); // 显示It's Trueif(isblank('\n')) // 换行printf("It's True"); // 显示It's Trueif(isblank('\r')) // 回车printf("It's True"); // 显示It's Truereturn 0;}实例5:isdigit()函数的作用是判断一个字符是否是字符类的数字:#include <stdio.h>#include <ctype.h>int main(void){if(isdigit('4'))printf("It's True"); // 显示It's Trueif(isdigit(4))printf("It's True"); // 显示''if(isdigit('a'))printf("It's True"); // 显示''return 0;}实例6:isgraph()函数的作用是判断一个字符是否是可打印字符(ascii码33-126之间的字符),isprint()函数功能和isgraph()函数类似,区别是isprint()函数包含空格在内(ascii码32-126之间的字符):#include <stdio.h>#include <ctype.h>int main(void){if(isgraph('a'))printf("It's True"); // 显示It's Trueif(isgraph('.'))printf("It's True"); // 显示It's Trueif(isgraph(' ')) // 空格printf("It's True"); // 显示''if(isprint('a'))printf("It's True"); // 显示It's Trueif(isprint('.'))printf("It's True"); // 显示It's Trueif(isprint(' ')) // 空格return 0;}实例7:islower()函数的作用是判断一个字符是否是小写字母,isupper()函数的作用是判断一个字符是否是大写字母:#include <stdio.h>#include <ctype.h>int main(void){if(islower('a'))printf("It's True"); // 显示It's Trueif(islower('A'))printf("It's True"); // 显示''if(isupper('a'))printf("It's True"); // 显示''if(isupper('A'))printf("It's True"); // 显示It's Truereturn 0;}实例8:ispunct()函数的作用是判断一个字符是否是除空格,字母,数字外的标点符号:#include <stdio.h>#include <ctype.h>int main(void){if(ispunct('a'))printf("It's True"); // 显示''if(ispunct('.'))printf("It's True"); // 显示It's Trueif(ispunct('<'))printf("It's True"); // 显示It's Truereturn 0;}实例9:isxdigit()函数的作用是判断一个字符是否是一个十六进制的数字:#include <stdio.h>#include <ctype.h>int main(void){if(isxdigit('4'))if(isxdigit('xE'))printf("It's True"); // 显示It's Trueif(isxdigit('xF'))printf("It's True"); // 显示''return 0;}实例10:tolower()函数的作用是将大些字符转换为小写,toupper()函数的作用是将小写字符转换为大写:#include <stdio.h>#include <ctype.h>int main(void){char n,m,i,j;n = tolower('A');m = tolower('a');i = toupper('a');j = toupper('.');printf("%c %c %c %c", n, m, i, j); // 显示a a A .return 0;}2.3.<errno.h>//定义错误码2.4.<float.h>//浮点数处理2.5.<fstream.h>//文件输入/输出2.6.<iomanip.h>//参数化输入/输出2.7.<iostream.h>//数据流输入/输出2.8.<limits.h>//定义各种数据类型最值常量2.9.<locale.h>//定义本地化函数2.10.<math.h>//定义数学函数2.11.<stdio.h>//定义输入/输出函数<stdio.h>下面的类型,宏,函数都是分类的其他:size_t sizeof返回的值NULL 空指针2.12.<file.h>FILE 文件的类型fpos_t 文件中指针的位置EOF 文件末尾<0FILENAME_MAX 文件名最大值>0FOPEN_MAX 同时打开文件的最大值>8SEEK_SET 文件头SEEK_CUR 文件当前位置SEEK_END 文件末尾打开文件FILE *fopen(const char *filename,const char *mode);更改当前流相关的文件FILE *freopen(const char *filename,const char *mode,FILE *stream); 关闭文件int fclose(FILE *stream);清除流中的错误标志或文件末尾标志void clearerr(FILE *stream);测试流上的文件末尾标志int feof(FILE *stream);测试流上的错误标志int ferror(FILE *stream);将一个字符放回到流中int ungetc(int c, FILE *stream);从流中读一个字符int fgetc(FILE *stream);int getc(FILE *stream);/* 与fgetc相同但是可以用宏实现该函数*/ 写一个字符到一个流int fputc(int c, FILE *stream);int putc(int c, FILE *stream);从流中获取一个字符串char *fgets(char *s, int n, FILE *stream);写一个字符串到一个流int fputs(const char *s, FILE *stream);打印一个格式化数据到一个流int fprintf(FILE *stream,const char *format, ...);使用一个参量列表指针格式化到流的数据int vfprintf(FILE *stream,const char *format, va_list ap);从一个流中读取格式化数据int fscanf(FILE *stream, const char *format, ...);从一个流中读数据size_t fread(char *buffer,size_t size,size_t count,FILE *stream);写数据到一个流int fwrite(const char *buffer, size_t size, size_t count, FILE *stream);获取流的文件位置指示符int fgetpos(FILE *stream, fpos_t *pos);设置流位置指示符int fsetpos(FILE *stream, const fpos_t *pos);移动文件指针到一个指定的位置int fseek(FILE *stream, long offset, int origin);获得文件指针相对于文件头的偏移量long ftell(FILE *stream);重新定位一个文件指针到文件开头void rewind(FILE *steam);删除一个文件int remove(const char *path);更改一个文件或目录int rename(const char *oldname, const char *newname);缓冲区:_IOFBF_IOLBF_IONBF 缓冲区类型BUFSIZE 缓冲区尺寸>=256刷新一个流并清空与流相关的缓冲区的内容int fflush(FILE *stream);控制流的缓冲区,已经被setvbuf代替void setbuf(FILE *stream, char *buffer);控制流的缓冲区类型和缓冲区大小int setvbuf(FILE *stream, char *buffer, int mode, size_t size); 将一个格式化数据写入一个字符串int sprintf(char *buffer, const char *format, ...);从字符串中读格式化数据int sscanf(const char *buffer, const char *format, ...);从参量列表指针格式化到字符串int vsprintf(char *buffer, const char *format, va_list ap);临时文件L_tmpnam 临时文件名长度>0TMP_MAX 产生唯一文件名的最大数目>=25以二进制读写的方式建立一个临时文件FILE *tmpfile(void);建立一个临时文件名char *tmpname(char *string);标准流:stdin 标准输入流stdout 标准输出流stderr 标准错误输出流从stdin获得一个字符int getchar(void);把字符写道stdoutint putchar(int c);从stdin中获取一行char *gets(char *buffer);写一个字符串到stdoutint puts(const char *string);打印一个错误消息到stderrvoid perror(const char *error);打印格式化数据到stdoutint printf(const char *format, ...);从stdin读格式化数据int scanf(const char *format, ...);从参量列表指针格式化到stdoutint vprintf(const char *format, va_list ap);2.13.<stdlib.h>//定义杂项函数及内存分配函数2.14.<string.h>//字符串处理2.15.<strstrea.h>//基于数组的输入/输出2.16.<time.h>//定义关于时间的函数2.17.<wchar.h>//宽字符处理及输入/输出2.18.<wctype.h>//宽字符分类3.标准 C++3.1.<algorithm>//STL 通用算法3.2.<bitset>//STL 位集容器3.3.<cctype>3.4.<cerrno>3.5.<clocale>3.6.<cmath>3.7.<complex>//复数类3.8.<cstdio>3.9.<cstdlib>3.10.<cstring>3.11.<ctime>3.12.<deque>//STL 双端队列容器3.13.<exception>//异常处理类3.14.<fstream>3.15.<functional>//STL 定义运算函数(代替运算符)3.16.<limits>3.17.<list>//STL 线性列表容器3.18.<map>//STL 映射容器3.19.<iomanip>3.20.<ios>//基本输入/输出支持3.21.<iosfwd>//输入/输出系统使用的前置声明3.22.<iostream>3.23.<istream>//基本输入流3.24.<ostream>//基本输出流3.25.<queue>//STL 队列容器3.26.<set>//STL 集合容器3.27.<sstream>//基于字符串的流3.28.<stack>//STL 堆栈容器3.29.<stdexcept>//标准异常类3.30.<streambuf>//底层输入/输出支持3.31.<string>//字符串类3.32.<utility>//STL 通用模板类3.33. <vector>//STL 动态数组容器3.34.<cwchar>3.35.<cwctype>using namespace std;//////////////////////////////////////////////////////////////////////////C99 增加3.36.<complex.h>//复数处理3.37.<fenv.h>//浮点环境3.38.<inttypes.h>//整数格式转换3.39.<stdbool.h>//布尔环境3.40.<stdint.h>//整型环境3.41.<tgmath.h>//通用类型数学宏4.函数大全4.1.分类函数所在函数库为<ctype.h>int isalpha(int ch) 若ch是字母('A'-'Z','a'-'z')返回非0值,否则返回0int isalnum(int ch) 若ch是字母('A'-'Z','a'-'z')或数字('0'-'9')返回非0值,否则返回0int isascii(int ch) 若ch是字符(ASCII码中的0-127)返回非0值,否则返回0int iscntrl(int ch) 若ch是作废字符(0x7F)或普通控制字符(0x00-0x1F) 返回非0值,否则返回0int isdigit(int ch) 若ch是数字('0'-'9')返回非0值,否则返回0int isgraph(int ch) 若ch是可打印字符(不含空格)(0x21-0x7E)返回非0值,否则返回0int islower(int ch) 若ch是小写字母('a'-'z')返回非0值,否则返回0int isprint(int ch) 若ch是可打印字符(含空格)(0x20-0x7E)返回非0值,否则返回0int ispunct(int ch) 若ch是标点字符(0x00-0x1F)返回非0值,否则返回0int isspace(int ch) 若ch是空格(' '),水平制表符('\t'),回车符('\r'),走纸换行('\f'),垂直制表符('\v'),换行符('\n')返回非0值,否则返回0int isupper(int ch) 若ch是大写字母('A'-'Z')返回非0值,否则返回0int isxdigit(int ch) 若ch是16进制数('0'-'9','A'-'F','a'-'f')返回非0值,否则返回0int tolower(int ch) 若ch是大写字母('A'-'Z')返回相应的小写字母('a'-'z')int toupper(int ch) 若ch是小写字母('a'-'z')返回相应的大写字母('A'-'Z')4.2.数学函数所在函数库为math.h、stdlib.h、string.h、float.hint 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+y2double 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转换成双精度数,并返回这个数,错误返回0int atoi(char *nptr) 将字符串nptr转换成整型数, 并返回这个数,错误返回0long 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() 返回浮点状态字4.3.目录函数所在函数库为dir.h、dos.hint chdir(char *path) 使指定的目录path(如:"C:\\WPS")变成当前的工作目录,成功返回0int findfirst(char *pathname,struct ffblk *ffblk,int attrib)查找指定的文件,成功返回0pathname为指定的目录名和文件名,如"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_RDONL Y 只读文件┃FA_LABEL 卷标号┃┃FA_HIDDEN 隐藏文件┃FA_DIREC 目录┃┃FA_SYSTEM 系统文件┃FA_ARCH 档案┃┗━━━━━━━━━┻━━━━━━━━┛例:struct ffblk ff;findfirst("*.wps",&ff,FA_RDONL Y);int findnext(struct ffblk *ffblk) 取匹配finddirst的文件,成功返回0void 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 保存指定驱动器当前工作路径的变量成功返回0char *getcwd(char *buf,iint n) 此函数取当前工作目录并存入buf中,直到n个字节长为为止.错误返回NULLint getdisk() 取当前正在使用的驱动器,返回一个整数(0=A,1=B,2=C等)int setdisk(int drive) 设置要使用的驱动器drive(0=A,1=B,2=C等),返回可使用驱动器总数int mkdir(char *pathname) 建立一个新的目录pathname,成功返回0int rmdir(char *pathname) 删除一个目录pathname,成功返回0char *mktemp(char *template) 构造一个当前目录上没有的文件名并存于template中char *searchpath(char *pathname) 利用MSDOS找出文件filename所在路径, ,此函数使用DOS的PA TH变量,未找到文件返回NULL4.4.进程函数所在函数库为stdlib.h、process.hvoid abort() 此函数通过调用具有出口代码3的_exit写一个终止信息于stderr,并异常终止程序。

相关文档
最新文档