c语言中常用函数大全.docx
(一)输入输出常用函数1,printf(1)有符号int%[-][+][0][width][.precision][l][h]d-:左对齐+:正数前加‘+’0:右对齐,acwidth.precision,按实际输出,否者左边补零(2)无符号int%[-][#][0][width][.precision][l][h]u|o|x|X#:”%o%x/X”输出0,0 x,0X.precision:同上,TC/BC包含0 x/X,VC下不包含(3)实数输出%[-][+][#][0][width][.precision][l][L]f|e|E|g|G#:必须输出小数点.precision:小数位数(四舍五入)(4)字符和字符串的输出%[-][0][width]c%[-][0][width][.precision]s.precision:S的前precision位2,scanf%[*][width][l][h]TypeWith:指定输入数据的宽度,遇空格、Tab、\n结束*:抑制符scanf(“%2d%*2d%3d”,num1==12,num2==567.注意:(1)指定width时,读取相应width位,但按需赋值Scanf(“%3c%3c”,看做一个字符。(2)字符串的复制Strcpy(字符数组1,字符串2);将字符串2,复制到字符数组1中(包含\0);1要足够大。1:必须为字符数组变量2字符数组变量或字符串常量strncpy(字符数组1,字符串2,长度n)将2中的前N个字符复制到1中,并在末尾加\0;n>=strlen(2)时,其等价strcpy。(4)字符串的比较1>2返回正数1=2返回01(1)void*calloc(unsignedn,unsignedsize);功能:在内存的动态存储区中分配n个长度为size的连续空间,并且赋初值为0(malloc侧不是);函数返回一个指向分配起始地址的指针;如果分配不成功,返回NULL。(2)原型:externvoid*realloc(void*mem_address,unsignedintnewsize)语法:指针名=(数据类型*)realloc(要改变内存大小的指针名,新的大小)。//新的大小一定要大于原来的大小不然的话会导致数据丢失!头文件:#include有些编译器需要#include,在TC2.0中可以使用alloc.h头文件功能:先按照newsize指定的大小分配空间,将原有数据从头到尾拷贝到新分配的内存区域,而后释放原来mem_address所指内存区域,同时返回新分配的内存区域的首地址。即重新分配存储器块的地址。返回值:如果重新分配成功则返回指向被分配内存的指针,否则返回空指针NULL。注意:这里原始内存中的数据还是保持不变的。当内存不再使用时,应使用free()函数将内存块释放。(三)文件函数mode:r:打开已存在文件,准备从文件中读取数据,不能写入r+:可读可写w:创建一个新文件,准备写入;如文件已存在,此文件将被空文件覆盖w+:增加“读取”操作a:打开已存在文件,准备在文件尾部追加数据,不能读取。如文件不存在,侧创建此文件,准备写入。a+:增加“读取”t:打开一个文本文件(缺省值)b:打开一个二进制文件一:文件的打开与关闭1:打开文件FILE*(char*filename,char*mode)Filename:是字符串,表示打开的文件名,文件名前可以带路径。Mode:也是字符串,表示打开文件的方式。功能----按指定方式打开文件。返回值----如果文件打开成功,返回“文件结构体指针”,否者返回NULL(如:文件不存在或则写文件时不能创建)。(“A:\\user\\asd.txt”,”r+”);2:关闭文件Int*fclose(FILE*filename)正常关闭返回0;否者返回非0。3:Intfeof(FILE*filepointer)功能----在执行文件操作时,遇到文件尾,返回1;否则返回0;Eg.!feof(fp1)表示源文件(用于输入)未结束,循环继续。此函数适用于ASCII码文件盒二进制文件。EOF是文本文件结束的标志。在文本文件中,数据是以字符的ASCⅡ代码值的形式存放,普通字符的ASCⅡ代码的范围是32到127(十进制),EOF的16进制代码为0 x1A(十进制为26),因此可以用EOF作为文件结束标志。当把数据以二进制形式存放到文件中时,就会有-1值的出现,因此不能采用EOF作为二进制文件的结束标志。为解决这一个问题,ASCIC提供一个feof函数,用来判断文件是否结束。feof函数既可用以判断二进制文件又可用以判断文本文件。“C”语言的“feof()”函数和数据库中“eof()”函数的运作是完全不同的。数据库中“eof()”函数读取当前指针的位置,“C”语言的“feof()”函数返回的是最后一次“读操作的内容”。多年来把“位置和内容”相混,从而造成了对这一概念的似是而非。那么,位置和内容到底有何不同呢?举个简单的例子,比如有人说“你走到火车的最后一节车箱”这就是位置。而如果说“请你一直向后走,摸到铁轨结束”这就是内容。也就是说用内容来判断会“多走一节”。这就是完全依赖于“while(!feof(FP)){.}”进行文件复制时,目标文档总会比源文档“多出一些”的原因。二:文件的读写1:字符读写函数fgetc和fputc(1):intfgetc(FILE*filepointer)