C语言中常用函数大全
C语言常用函数

C语言的常用库函数函数1。
absread()读磁盘绝对扇区函数原形:int absread(int drive,int num,int sectnum,void *buf)功能:从drive指定的驱动器磁盘上,sectnum指定的逻辑扇区号开始读取(通过DOS中断0x25读取)num 个(最多64K个)扇区的内容,储存于buf所指的缓冲区中。
参数:drive=0对应A盘,drive=1对应B盘。
返回值:0:成功;-1:失败。
头文件:dos.h函数2。
abswrite()写磁盘绝对扇区函数原形:int abswrite(int drive,int nsects,int lsect,void *buffer)drive=0(A驱动器)、1(B驱动器)、nsects=要写的扇区数(最多64K个);lsect=起始逻辑扇区号;buffer=要写入数据的内存起始地址。
功能:将指定内容写入(调用DOS中断0x26)磁盘上的指定扇区,即使写入的地方是磁盘的逻辑结构、文件、FAT表和目录结构所在的扇区,也照常进行。
返回值:0:成功;-1:失败。
头文件:dos.h函数3。
atof()将字符串转换成浮点数的函数原形:double atof(const char *s)功能:把s所指向的字符串转换成double类型。
s格式为:符号数字.数字E符号数字返回值:字符串的转换值。
头文件:math.h、stdlib.h函数4。
atoi()将字符串转换成整型数的函数原形:int atoi(const char *s)功能:把s所指向的字符串转换成int类型。
s格式为:符号数字返回值:字符串的转换值。
若出错则返回0。
头文件:stdlib.h函数5。
atol()将字符串转换成长整型数的函数原形:long atol(const char *s)功能:把s所指向的字符串转换成long int类型。
s格式为:符号数字返回值:字符串的转换值。
C语言函数大全

C语言函数大全C语言作为一种广泛应用的计算机编程语言,其函数是程序设计中不可或缺的部分。
C语言函数大全涵盖了C语言中常用的各种函数,包括数学函数、字符串函数、输入输出函数等,本文将对这些函数进行详细介绍。
一、数学函数。
1. abs函数。
abs函数用于返回一个整数的绝对值,其原型为int abs(int x)。
2. pow函数。
pow函数用于计算一个数的幂,其原型为double pow(double x, double y)。
3. sqrt函数。
sqrt函数用于计算一个数的平方根,其原型为double sqrt(double x)。
4. sin函数。
sin函数用于计算一个角度的正弦值,其原型为double sin(double x)。
5. cos函数。
cos函数用于计算一个角度的余弦值,其原型为double cos(double x)。
6. tan函数。
tan函数用于计算一个角度的正切值,其原型为double tan(double x)。
二、字符串函数。
1. strlen函数。
strlen函数用于返回一个字符串的长度,其原型为size_t strlen(const char s)。
2. strcpy函数。
strcpy函数用于将一个字符串复制到另一个字符串中,其原型为charstrcpy(char dest, const char src)。
3. strcat函数。
strcat函数用于将一个字符串追加到另一个字符串的末尾,其原型为char strcat(char dest, const char src)。
4. strcmp函数。
strcmp函数用于比较两个字符串,其原型为int strcmp(const char s1, const char s2)。
5. strchr函数。
strchr函数用于在一个字符串中查找指定字符的位置,其原型为charstrchr(const char s, int c)。
c语言常用函数

1、字符处理函数本类别函数用于对单个字符进行处理,包括字符的类别测试和字符的大小写转换头文件 ctype.hint 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值,否则返回int 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')2、数学函数本分类给出了各种数学计算函数头文件 math.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 modf(double value,double *iptr) 将双精度数value分解成尾数和阶double fmod(double x,double y) 返回x/y的余数3、字符串处理本分类的函数用于对字符串进行合并、比较等操作头文件 string.hchar stpcpy(char *dest,const char *src) 将字符串src复制到destchar strcat(char *dest,const char *src) 将字符串src添加到dest末尾char strchr(const char *s,int c) 眷索并返回字符c在字符串s中第一次出现的位置int strcmp(const char *s1,const char *s2) 比较字符串s1与s2的大小,并返回s1-s2char strcpy(char *dest,const char *src) 将字符串src复制到destsize_t strcspn(const char *s1,const char *s2) 扫描s1,返回在s1中有,在s2中也有的字符个数char strdup(const char *s) 将字符串s复制到最近建立的单元int stricmp(const char *s1,const char *s2) 比较字符串s1和s2,并返回s1-s2size_t strlen(const char *s) 返回字符串s的长度char strlwr(char *s)将字符串s中的大写字母全部转换成小写字母,并返回转换后的字符串char strncat(char *dest,const char *src,size_t maxlen)将字符串src中最多maxlen个字符复制到字符串dest中int strncmp(const char *s1,const char *s2,size_t maxlen)比较字符串s1与s2中的前maxlen个字符char strncpy(char *dest,const char *src,size_t maxlen)复制src中的前maxlen个字符到dest中int strnicmp(const char *s1,const char *s2,size_t maxlen)比较字符串s1与s2中的前maxlen个字符char strnset(char *s,int ch,size_t n)将字符串s的前n个字符置于ch中char strpbrk(const char *s1,const char *s2)扫描字符串s1,并返回在s1和s2中均有的字符个数char strrchr(const char *s,int c)扫描最后出现一个给定字符c的一个字符串schar strrev(char *s)将字符串s中的字符全部颠倒顺序重新排列,并返回排列后的字符串char strset(char *s,int ch)将一个字符串s中的所有字符置于一个给定的字符chsize_t strspn(const char *s1,const char *s2)扫描字符串s1,并返回在s1和s2中均有的字符个数char strstr(const char *s1,const char *s2)扫描字符串s2,并返回第一次出现s1的位置char strtok(char *s1,const char *s2)检索字符串s1,该字符串s1是由字符串s2中定义的定界符所分隔char strupr(char *s)将字符串s中的小写字母全部转换成大写字母,并返回转换后的字符串4、输入输出函数该分类用于处理包括文件、控制台等各种输入输出设备,各种函数以“流”的方式实现头文件 stdio.hC语言输入输出函数有很多,标准I/O函数中包含了如下几个常用的函数:scanf,printf,getc,putc,getchar,putchar,gets,puts,fgets,fputs,fge tc,fputc,fscanf,fprintf等.int scanf(const char *format, arg_list)scanf主要从标准输入流中获取参数值,format为指定的参数格式及参数类型,如scanf("%s,%d",str,icount);它要求在标准输入流中输入类似"son of bitch,1000"这样的字符串,同时程序会将"son of bitch"给str,1000给icount.scanf函数的返回值为int值,即成功赋值的个数,在上例中如果函数调用成功,则会返回2,所以我们在写程序时,可以通过语句if(scanf("%s,%d",str,icount) != 2){...}来判断用户输入是否正确.int printf(const char *format, arg_list)printf主要是将格式化字符串输出到标准输出流中,在stdio.h头文件中定义了标准的输入和输出,分别是stdin,stdout.arg_list可以是变量名,也可以是表达式,但最终都会以值的形式填充进format中.int getc(FILE *fp)getc主要是从文件中读出一个字符.常用的判断文件是否读取结束的语句为:(ch = getc(fp)) != EOF.EOF为文件结束标志,定义在stdio.h中,就像EXIT_SUCCESS,EXIT_FAILURE定义在stdlib.h中一样,文件也可以被理解为一种流,所以当fp为stdin时,getc(stdin)就等同于getchar()了.int putc(int ch,FILE *fp)putc主要是把字符ch写到文件fp中去.如果fp为stdout,则putc就等同于putchar()了.int getchar(void)getchar主要是从标准输入流读取一个字符.默认的标准输入流即stdio.h 中定义的stdin.但是从输入流中读取字符时又涉及到缓冲的问题,所以并不是在屏幕中敲上一个字符程序就会运行,一般是通过在屏幕上敲上回车键,然后将回车前的字符串放在缓冲区中,getchar就是在缓冲区中一个一个的读字符.当然也可以在while循环中指定终止字符,如下面的语句:while ((c = getchar()) != '#')这是以#来结束的.int putchar(int ch)putchar(ch)主要是把字符ch写到标准流stdout中去.char * gets(char *str)gets主要是从标准输入流读取字符串并回显,读到换行符时退出,并会将换行符省去.int puts(char *str)puts主要是把字符串str写到标准流stdout中去,并会在输出到最后时添加一个换行符.char *fgets(char *str, int num, FILE *fp)str是存放读入的字符数组指针,num是最大允许的读入字符数,fp是文件指针.fgets的功能是读一行字符,该行的字符数不大于num-1.因为fgets函数会在末尾加上一个空字符以构成一个字符串.另外fgets在读取到换行符后不会将其省略.int fputs(char *str, file *fp)fputs将str写入fp.fputs与puts的不同之处是fputs在打印时并不添加换行符.int fgetc(FILE *fp)fgetc从fp的当前位置读取一个字符.int fputc(int ch, file *fp)fputc是将ch写入fp当前指定位置.int fscanf(FILE *fp, char *format,...)fscanf按照指定格式从文件中出读出数据,并赋值到参数列表中.int fprintf(FILE *fp, char *format,...)fprintf将格式化数据写入流式文件中.5、控制台输入输出函数该类函数主要包含了一些文本模式的屏幕控制函数,象绘画窗口、显示彩色文本,不是 Ansi标准函数,比如getch()函数等等。
c语言常用的数学函数

以下是一些常见的C语言数学函数:1.数值计算函数:●abs():返回一个整数的绝对值。
●fabs():返回一个浮点数的绝对值。
●sqrt():计算一个数的平方根。
●pow():计算一个数的指定次幂。
●exp():计算自然对数的指数。
●log():计算一个数的自然对数。
●log10():计算一个数的以10为底的对数。
●ceil():向上取整,返回不小于给定参数的最小整数。
●floor():向下取整,返回不大于给定参数的最大整数。
●round():四舍五入,返回距离给定参数最近的整数。
2.三角函数:●sin():计算给定角度的正弦值。
●cos():计算给定角度的余弦值。
●tan():计算给定角度的正切值。
●asin():计算给定值的反正弦。
●acos():计算给定值的反余弦。
●atan():计算给定值的反正切。
●atan2():计算给定两个参数的反正切。
3.随机数生成函数:●rand():生成一个范围在0到RAND_MAX之间的随机整数。
●srand():设置随机数生成器的种子值。
4.其他函数:●min():返回两个给定值中较小的那个。
●max():返回两个给定值中较大的那个。
●fmod():计算给定两个浮点数的余数。
这仅仅是一些常见的C语言数学函数,math.h库中还有更多可用的函数。
在使用这些函数之前,请确保正确包含了<math.h>头文件,并根据需要使用适当的参数和类型进行函数调用。
可以参考C语言的相关文档以获取更详细的信息。
c语言常用函数大全

c语言常用函数大全1.int iscntrl(int c) 判断字符c是否为控制字符。
2.int isalnum(int c) 判断字符c是否为字母或数字3.int isalpha(int c) 判断字符c是否为英文字母4.int isascii(int c) 判断字符c是否为ascii码5.int isblank(int c) 判断字符c是否为TAB或空格6.int isdigit(int c) 判断字符c是否为数字7.int isgraph(int c) 判断字符c是否为除空格外的可打印字符8.int islower(int c) 判断字符c是否为小写英文字母9.int isprint(int c) 判断字符c是否为可打印字符(含空格)10.int ispunct(int c) 判断字符c是否为标点符号11.int isspace(int c) 判断字符c是否为空白符12.int isupper(int c) 判断字符c是否为大写英文字母13.int isxdigit(int c) 判断字符c是否为十六进制数字14.int toascii(int c) 将字符c转换为ascii码15.int tolower(int c) 将字符c转换为小写英文字母16.int toupper(int c); 将字符c转换为大写英文字母17.float fabs(float x) 求浮点数x的绝对值18.int abs(int x) 求整数x的绝对值19.float acos(float x) 求x(弧度表示)的反余弦值20.float asin(float x) 求x(弧度表示)的反正弦值21.float atan(float x) 求x(弧度表示)的反正切值22.float atan2(float y, float x) 求y/x(弧度表示)的反正切值23.float ceil(float x) 求不小于x的最小整数24.float cos(float x) 求x(弧度表示)的余弦值25.float cosh(float x) 求x的双曲余弦值26.float exp(float x) 求e的x次幂。
c语言常用函数大全超详细

c语言常用函数大全超详细C语言常用函数大全:A Comprehensive Guide in ChineseC语言是一种非常流行且广泛应用的编程语言,其提供了许多内置函数来处理各种任务。
在本文中,我们将详细介绍一些C语言常用的函数,以帮助初学者和有经验的程序员更好地理解和应用这些函数。
1. printf()函数:该函数用于输出文本到屏幕或文件。
使用格式化字符串可以实现不同类型的输出,如整数、浮点数和字符串。
2. scanf()函数:该函数用于从用户输入中读取数据,并将其保存到变量中。
和printf()函数一样,scanf()函数也使用格式化字符串来指定输入的数据类型。
3. strlen()函数:该函数用于计算字符串的长度。
它返回一个无符号整数,表示字符串中字符的数量,不包括空结束符。
4. strcpy()函数:该函数用于将一个字符串复制到另一个字符串。
它将源字符串中的字符复制到目标字符串中,并在目标字符串的末尾添加空结束符。
5. strcat()函数:该函数用于将一个字符串连接到另一个字符串的末尾。
它将源字符串中的字符连接到目标字符串的末尾,并确保目标字符串以空结束符结尾。
6. atoi()函数:该函数将一个字符串转换为整数并返回结果。
7. atof()函数:该函数将一个字符串转换为浮点数并返回结果。
8. srand()函数:该函数用于初始化随机数生成器。
通过提供一个种子值,可以生成伪随机数序列。
9. rand()函数:该函数生成一个伪随机数。
在调用srand()函数之后,可以使用rand()函数来获取一系列不同的随机数。
10. fopen()函数:该函数用于打开文件,并返回一个指向该文件的指针。
可以指定不同的模式来进行读取、写入或同时读写文件。
11. fclose()函数:该函数用于关闭已经打开的文件。
在完成文件操作后调用该函数是一个良好的编程实践,以确保文件资源被正确释放。
12. fgets()函数:该函数用于从文件中读取一行文本。
c语言常用函数大全及详解

C语言常用函数包括:1.printf函数:用于在控制台输出数据。
2.scanf函数:用于从控制台读取用户输入的数据。
3.strlen函数:用于计算字符串的长度。
4.strcmp函数:用于比较两个字符串的大小。
5.strcpy函数:用于将一个字符串复制到另一个字符串中。
6.strcat函数:用于将一个字符串连接到另一个字符串的末尾。
7.strchr函数:用于查找字符串中指定字符的位置。
8.strstr函数:用于查找字符串中指定子串的位置。
9.atoi函数:用于将字符串转换为整数。
10.atof函数:用于将字符串转换为浮点数。
11.malloc函数:用于动态分配内存空间。
12.free函数:用于释放动态分配的内存空间。
13.memcpy函数:用于将一段内存区域的数据复制到另一段内存区域。
14.memset函数:用于将一段内存区域的数据设置为指定的值。
15.abs函数:用于计算整数的绝对值。
16.rand函数:用于生成随机数。
17.srand函数:用于设置随机数生成器的种子。
18.time函数:用于获取当前的系统时间。
19.localtime函数:用于将时间戳转换为本地时间。
20.strtol函数:用于将字符串转换为长整型数。
21.strtod函数:用于将字符串转换为双精度浮点数。
22.fprintf函数:用于将数据格式化输出到文件中。
23.fscanf函数:用于从文件中读取格式化的数据。
24.fgets函数:用于从文件中读取一行数据。
25.fputs函数:用于将数据写入文件中。
26.fopen函数:用于打开文件。
27.fclose函数:用于关闭文件。
28.feof函数:用于判断文件是否已经到达文件末尾。
29.ferror函数:用于判断文件操作是否发生错误。
30.fprintf函数:用于将数据格式化输出到文件中。
c语言常用函数大全及详解

c语言常用函数大全及详解C语言是一种通用的、面向过程的编程语言,被广泛应用于系统软件、嵌入式开发以及科学计算领域。
在C语言中,函数是一种模块化编程的基本方法,通过函数可以将一段代码进行封装和复用,提高了代码的可读性和可维护性。
本文将介绍一些C语言中常用的函数,并详细解释其用法及重要参数。
一、数学函数1. abs()函数函数原型:int abs(int x);函数功能:返回x的绝对值。
参数说明:x为一个整数。
2. pow()函数函数原型:double pow(double x, double y);函数功能:计算x的y次方。
参数说明:x和y为两个double类型的实数。
3. sqrt()函数函数原型:double sqrt(double x);函数功能:计算x的平方根。
参数说明:x为一个double类型的实数。
二、字符串函数1. strcpy()函数函数原型:char* strcpy(char* destination, const char* source);函数功能:将source字符串复制到destination字符串。
参数说明:destination为目标字符串,source为源字符串。
2. strlen()函数函数原型:size_t strlen(const char* str);函数功能:计算str字符串的长度。
参数说明:str为一个以'\0'结尾的字符串。
3. strcat()函数函数原型:char* strcat(char* destination, const char* source);函数功能:将source字符串拼接到destination字符串的末尾。
参数说明:destination为目标字符串,source为源字符串。
三、文件操作函数1. fopen()函数函数原型:FILE* fopen(const char* filename, const char* mode);函数功能:打开一个文件,并返回文件指针。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(一)输入输出常用函数1,printf(1)有符号int%[-][+][0][width][.precision][l][h]d-:左对齐+:正数前加‘+’0:右对齐,acwidth<width,左补零.precision:至少输出位数。
若实际的位数>.precision,按实际输出,否者左边补零(2)无符号int%[-][#][0][width][.precision][l][h]u|o|x|X#:”%o%x/X”输出0,0x,0X.precision:同上,TC/BC包含0x/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,&num2)输入123456789\n;num1==12,num2==567.注意:(1)指定width时,读取相应width位,但按需赋值Scanf(“%3c%3c”,&ch1,&ch2)输入a bc d efg ch1==a ch2==d(2)%c输入单字符时“空格、转义字符”均是有效字符(二)ascll字符/字符串/文件函数1;字符非格式化输入函数(1)int getchar(void)接受字符,以回车结束,回显(2)int getc(FILE*stream)从stream中接受字符,以回车结束,回显stream=stdin时,(1)==(2)(3)int getche(void)直接读取字符,回显conio.h(4)int getchar(void)直接读取字符,不回显conio.h注意:(1,2)对于回车键返回‘\n’(3,4)对于回车键返回‘\r’2;字符/串非格式化输出函数(1)int putchar(int c)正常返回字符代码值,出错返回EOF(2)int putc(int c,FILE*stream)正常返回字符代码值,出错返回EOF stream==stdout(1)=(2)(3)int puts(char*stream)自动回车换行1;字符串的赋值#include<string.h memory.h>Void*memset(void*s,char ch,unsigned n)将以S为首地址的,一片连续的N个字节内存单元赋值为CH.Void*memcpy(void*d,void*s,unsigned n)将以S为首地址的一片连续的N个字节内存单元的值拷贝到以D为首地址的一片连续的内存单元中。
(对于数据类型、大小相同的数组可以用此函数拷贝/部分拷贝)2;#include<string.h>(1)strlen(求字符串长度)求字符串长度,从给定的字符串的起始地址开始,到第一个’\0’为止(不包含’\0’)。
转义字符\ddd、\xhh;看做一个字符。
(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<2返回负数比较规则:逐个比较字符的ASCII码值,直到遇到不同的字符或‘\0’。
Strcmp(字符串1,字符串2)Stricmp/Strcmpi(字符串1,字符串2)“不区分大小写”Strncmp(字符串1,字符串2,长度n)将字符串1前N个字符与字符串2前N个字符进行比较(n足够大时等价strcmp)Strincmp(字符串1,字符串2,长度n)(5)字符串的连接Strcat(字符串1,字符串2)将2连接到1后面(包含\0);1要足够大。
Strncat(字符串1,字符串2,unsigned int count)将2的前N个字符连接到1后面以\0结束;3;动态分配内存include<stdlib.h/malloc.h>(1)void*calloc(unsigned n,unsigned size);功能:在内存的动态存储区中分配n个长度为size的连续空间,并且赋初值为0(malloc侧不是);函数返回一个指向分配起始地址的指针;如果分配不成功,返回NULL。
(2)原型:extern void*realloc(void*mem_address,unsigned int newsize)语法:指针名=(数据类型*)realloc(要改变内存大小的指针名,新的大小)。
//新的大小一定要大于原来的大小不然的话会导致数据丢失!头文件:#include<stdlib.h>有些编译器需要#include<alloc.h>,在TC2.0中可以使用alloc.h头文件功能:先按照newsize指定的大小分配空间,将原有数据从头到尾拷贝到新分配的内存区域,而后释放原来mem_address所指内存区域,同时返回新分配的内存区域的首地址。
即重新分配存储器块的地址。
返回值:如果重新分配成功则返回指向被分配内存的指针,否则返回空指针NULL。
注意:这里原始内存中的数据还是保持不变的。
当内存不再使用时,应使用free()函数将内存块释放。
(三)文件函数mode:r:打开已存在文件,准备从文件中读取数据,不能写入r+:可读可写w:创建一个新文件,准备写入;如文件已存在,此文件将被空文件覆盖w+:增加“读取”操作a:打开已存在文件,准备在文件尾部追加数据,不能读取。
如文件不存在,侧创建此文件,准备写入。
a+:增加“读取”t:打开一个文本文件(缺省值)b:打开一个二进制文件一:文件的打开与关闭1:打开文件FILE*fopen(char*filename,char*mode)Filename:是字符串,表示打开的文件名,文件名前可以带路径。
Mode:也是字符串,表示打开文件的方式。
功能----按指定方式打开文件。
返回值----如果文件打开成功,返回“文件结构体指针”,否者返回NULL(如:文件不存在或则写文件时不能创建)。
Fopen(“A:\\user\\asd.txt”,”r+”);2:关闭文件Int*fclose(FILE*filename)正常关闭返回0;否者返回非0。
3:Int feof(FILE*filepointer)功能----在执行文件操作时,遇到文件尾,返回1;否则返回0;Eg.!feof(fp1)表示源文件(用于输入)未结束,循环继续。
此函数适用于ASCII码文件盒二进制文件。
EOF是文本文件结束的标志。
在文本文件中,数据是以字符的ASCⅡ代码值的形式存放,普通字符的ASCⅡ代码的范围是32到127(十进制),EOF 的16进制代码为0x1A(十进制为26),因此可以用EOF作为文件结束标志。
当把数据以二进制形式存放到文件中时,就会有-1值的出现,因此不能采用EOF作为二进制文件的结束标志。
为解决这一个问题,ASCI C提供一个feof函数,用来判断文件是否结束。
feof函数既可用以判断二进制文件又可用以判断文本文件。
“C”语言的“feof()”函数和数据库中“eof()”函数的运作是完全不同的。
数据库中“eof()”函数读取当前指针的位置,“C”语言的“feof()”函数返回的是最后一次“读操作的内容”。
多年来把“位置和内容”相混,从而造成了对这一概念的似是而非。
那么,位置和内容到底有何不同呢?举个简单的例子,比如有人说“你走到火车的最后一节车箱”这就是位置。
而如果说“请你一直向后走,摸到铁轨结束”这就是内容。
也就是说用内容来判断会“多走一节”。
这就是完全依赖于“while(!feof(FP)){...}”进行文件复制时,目标文档总会比源文档“多出一些”的原因。
二:文件的读写1:字符读写函数fgetc和fputc(1):int fgetc(FILE*filepointer)功能----从文件指针filepointer指向的文件中,读入一个‘字节(字符)’,同时将读写位置指针向前移动一个字节。
返回值-----如果读取正常,返回读到的的字节值;如果读到文件尾或出错;侧返回EOF。
fgetc函数返回的值是int类型,如果强制的赋值给char类型,会导致当读出的数据为0xff 时,误认为是EOF(-),导致程序出错。
(2):Int fputc(int c,FILE*filepointer)功能-----将字符c输出到文件指针filepointer所指的文件中去;同时将读写位置指针向前移动一个字节。
返回值------成功、返回字符数据c;否者返回EOF。
2:字符串读写函数fgets和fputs(1):Char*fgets(char*s,int n,FILE*filrpointer)Cahr*s可以是“字符数组名”也可是“字符串”(别的类似的函数也是如此)功能---从文件指针filepointer指向的文件中,读取长度最大为n-1的字节串,并在字符串的末尾加上结束标志‘\0’;然后将字符串放在s中,同时读写位置指针向前移动,实际读写的字串长度(<=n-1)个字节。
“当从文件中读取第n-1个字符后或读取数据过程中遇到‘\n’(“\n也会存入字符串”)后,函数返回。
”一次s中存放的字符串的长度不一定正好是‘n-1’。
返回值----如成功,返回读取字串的指针;如果读到文尾或出错,返回NULL。
(2):Int fputs(char*S,FILE*filepointer)功能---将存放在s中的字串,写到文件指针filepointer指向的文件中,同时将读写位置指针向前移动,字符串长度个字节。
“注意:fputs函数不会将字符串结尾符‘\0’写入文件,也不会自动向文件写入自动换行符,如需写入一行文本,s字串中必须包含‘\n’。
”返回值----成功,返回“最后写入文件的字符”;否则返回EOF。
3:数据块读取函数fread和fwrite(1):Unsigned fread(void*ptr,unsigned size,unsigned n,FILE*filepointer)功能--→从filepointer所指向的的文件中读取n个数据项,每个数据项的大小事size个字节,并把这些数据存入ptr所指的内存中。