当前位置:文档之家› C语言中常用函数大全

C语言中常用函数大全

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

(一)输入输出常用函数

1,printf

(1)有符号int

%[-][+][0][width][.precision][l][h] d

-:左对齐

+:正数前加‘+’

0:右对齐,acwidth

.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]Type

With:指定输入数据的宽度,遇空格、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

(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 返回0

1<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

(1)void *calloc(unsigned n, unsigned size);

功能: 在内存的动态存储区中分配n个长度为size的连续空间,并且赋初值为0(malloc侧不是);函数返回一个指向分配起始地址的指针;如果分配不成功,返回NULL。

(2) 原型:

extern void *realloc(void *mem_address, unsigned int newsize)

语法:

指针名=(数据类型*)realloc(要改变内存大小的指针名,新的大小)。//新的大小一定要大于原来的大小不然的话会导致数据丢失!

头文件:#include 有些编译器需要#include ,在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所指的内存中。且位置指针向前移动n*size个字节,如sizeof(int)。

返回值-→操作成功,返回读取数据项的个数(不是字节的个数);出错或到文尾,返回0。(2)

Unsigned fwrite(void*ptr,unsigned size,unsigned n,FILE*filepointer)

功能--→将ptr所指向的的内存中存放的n个大小为size的数据项写入filepointer所指向的文件中,实际要写入数据项的字节数是n*size。同时,将读写位置指针向前移动n*size 个字节。

返回值--→操作成功,返回:实际写入的数据项的个数;出错,返回0

注意:--→fread和 fwrite一般用于二进制文件的输入和输出。如强制输入输出到文本文件,即使打开文件也是乱码或与内容不符。

4:格式化读写函数fscanf和fprintf

此两函数和scanf和printf函数的区别是:fcanf/fprintf的操作对象是“指定文件”;而scanf/printf函数的操作对象是“stdin和stdout”

(1):

Int fscanf(FILE*filepointer,const char*format[,address,…]);

功能--→从一个流中执行格式化输入,fscanf遇到空格和换行时结束,注意空格时也结束。这与fgets有区别,fgets遇到空格不结束。///*fscanf遇到\t会跳过,遇到\n会结束.并让位置指针移到下行,所以此处的\t可以略去*/

返回值---→如果操作成功,返回:读取数据项的个数;如果出错或到文尾,返回:EOF。Fscanf(fp,“%d,%f”,&I,&t)//若文件中有3,4.5,侧将3送入I,4.5送入t。

fprintf(fp,“%d,%6.2f”,I,t)//将i和t按%d,%6.2f格式输出到fp文件。

“%d,%f”中间的“,”可以不写生成的文件中数据相隔两个“空格”。

(2):

Int fprintf(FILE*filepointer,const char*format[,address,…]);

功能---→函数根据指定的format(格式)(格式)发送信息(参数)到由stream(流)指定的文件. fprintf()只能和printf()一样工作.

返回值-→成功,返回:写入到文件中数据的字节个数;否则返回EOF(-1)

注意:文件格式化输出函数fprintf总是以字符串的形式将数据信息存到文件中,而不是以数值的形式存放到文件中,不管打开的是文本文件还是二进制文件。

Fgets/fputc:可对“b/t”文件读写;

Fread/fwrite:可对“b/t”文件读写

Fgets/fputs:主要对“t”读写;对“b”读写无意义

Fscanf/fprintf:同上

三:文件的定位读写

(1):rewind函数

Void rewind(FILE*filepointer);

功能--→将filepointer所指向的文件的位置指针从新置回到文件的开头。

返回值---→无

(2):fseek函数

Int fseek(FILE*filepointer, long offset, int whence)

功能--→将filepointer所指向的文件的位置指针移动到特定的位置。这个特定的位置由whence 和offset决定,即将位置指针移动到距离whence的offset字节处。(Whence的值如下表)如果offset为正值,表明新的位置在whence的后面;如果是负值,表明新的位置在whence的前面。

返回值---→操作成功返回0;否则返回非0/-1。(只对小于4G的文件有效)

注意:fseek函数一般用于二进制文件,在文本文件中由于要进行转换,故往往计算的位置有误。

Whence的常量值数值含义

SEEK_SET 0 文件的开始处

SEEK_CUR 1 文件位置指针的当前位置

SEEK_END 2 文件的末尾

fseek函数的文件指针,应该为已经打开的文件。如果没有打开的文件,那么将会出现错误。fseek函数也可以这样理解,相当于在文件当中定位。这样在读取规律性存储文件时可以利用其OFFSET偏移量读取文件上任意的内容。

fseek函数一般用于二进制文件,也可以用于文本文件。用于文本文件操作时,需特别注意回车换行的情况:因为在一般浏览工具如UltraEdit中,回车换行视为两个字符0x0D和0x0A,但真实的文件读写和定位时确按照一个字符0x0A进行处理,因此碰到此类问题时,可以考虑将文件整个读入内存,然后在内存中手工插入0x0D的方法,这样可以达到较好的处理效果。

当offset是向文件尾方向偏移的时候,无论偏移量是否超出文件尾,fseek都是返回0,当偏移量没有超出文件尾的时候,文件指针式指向正常的偏移地址的,当偏移量超出文件尾的时候,文件指针是指向文件尾的。并不会返回偏移出错-1值。

offset>(当前位置指针到文尾的偏移时)使位置指针至尾的,不能写入内容,否则文件结尾符将被覆盖,文件变大/文件损坏将无法打开!

当offset是向文件头方向偏移的时候,如果offset没有超出文件头,是正常偏移,文件指针指向正确的偏移地址,fseek返回值为0.当offset超出文件头时,fseek返回出错-1值,文件指针不变还是处于原来的地址。

(3):ftell函数

Long ftell(FILE*filepointer)

文件位置指针的最小值是0,最大值是文件的长度。

功能--→返回filepointer所指向文件当前位置指针的值(用相对文件开头的位移量表示)。

返回值--→成功,返回:当前位置指针的值;出错,返回:-1L。

(三)文件夹函数

1、文件夹/文件的判断函数access

头文件:io.h

功能: 确定文件或文件夹的访问权限。即,检查某个文件的存取方式,比如说是只读方式、只写方式等。如果指定的存取方式有效,则函数返回0,否则函数返回-1。

用法: int access(const char *filenpath, int mode); 或者int _access( const char *path, int mode );

备注:(filenpath)当该参数为文件的时候,access函数能使用mode参数所有的值,当该参数为文件夹的时候,access函数值能判断文件夹是否存在。在WIN NT 中,所有的文件夹都有读和写权限

Mode: 0 (F_OK)只判断是否存在

2 (R_OK)判断写入权限

4 (W_OK)判断读取权限

6 (X_OK)判断执行权限

若存在或者具有权限,返回值为0;不存在或者无权限,返回值为-1。

特别提醒:fopen用这种方法做出的判断是不完全正确的,因为有的文件存在,但是可能不可读。

错误代码

EACCESS 参数pathname 所指定的文件不符合所要求测试的权限。

EROFS 欲测试写入权限的文件存在于只读文件系统内。

EFAULT 参数pathname指针超出可存取内存空间。

EINVAL 参数mode 不正确。

ENAMETOOLONG 参数pathname太长。

ENOTDIR 参数pathname为一目录。

ENOMEM 核心内存不足

ELOOP 参数pathname有过多符号连接问题。

EIO I/O 存取错误。

特别提醒:使用access()作用户认证方面的判断要特别小心,例如在access()后再做open()的空文件可能会造成系统安全上的问题。

2.C语言创建目录、文件夹

1. 调用Windows API函数CreateDirectory():

CreateDirectory("D:\\MyDir", NULL);

2. 调用C运行库函数mkdir():

#include

mkdir("D:\\MyDir");

VS/TC中可用

VC++6.0用法: int _mkdir( const char *dirname );

头文件库:direct.h

返回值:创建一个目录,若成功则返回0,否则返回-1

3. 调用system命令md:

system("md D:\\MyDir");

4.打开文件夹

system("explorer.exe F:\\lou1");/ system("explorer F:\\lou1");

3.判断文件大小

unsigned long getfilesize(char*str)

{

struct stat f_stat;

if(stat(str,&f_stat)==-1)

{

return -1;

}

return(unsigned long)f_stat.st_size;/*返回的文件里的字符数(B),缺点是最多只能表示大约4G的文件,

因返回值是unsigned long*/

}

(四)struct stat 作用

stat,lstat,fstat1 函数都是获取文件(普通文件,目录,管道,socket,字符,块()的属性。函数原型#include

int stat(const char *restrict pathname, struct stat *restrict buf);提供文件名字,获取文件对应属性。

int fstat(int filedes, struct stat *buf);通过文件描述符获取文件对应的属性。

int lstat(const char *restrict pathname, struct stat *restrict buf);连接文件描述命,获取文件属性。2 文件对应的属性

struct stat {

mode_t st_mode; //文件对应的模式,文件,目录等

ino_t st_ino; //inode节点号

dev_t st_dev; //设备号码

dev_t st_rdev; //特殊设备号码

nlink_t st_nlink; //文件的连接数

uid_t st_uid; //文件所有者

gid_t st_gid; //文件所有者对应的组

off_t st_size; //普通文件,对应的文件字节数

time_t st_atime; //文件最后被访问的时间

time_t st_mtime; //文件内容最后被修改的时间

time_t st_ctime; //文件状态改变时间

blksize_t st_blksize; //文件内容对应的块大小

blkcnt_t st_blocks; //伟建内容对应的块数量

time_t st_atime; /* time of last access -最近存取时间*/

time_t st_mtime; /* time of last modification -最近修改时间*/

time_t st_ctime; /* time of last status change - */

};

----------------------------------------------------------------------------------------

#include

#inlcude

#include

int fstat(int filedes,struct stat *buf);

int stat(const char *path,struct stat *buf);

int lstat(const char *path,struct stat *buf);

这三个系统调用都可以返回指定文件的状态信息,这些信息被写到结构struct stat的缓冲区中。通过分析这个

结构可以获得指定文件的信息。

fstat区别于另外两个系统调用的地方在于,fstat系统调用接受的是一个“文件描述符”,而另外两个则直接接受“文件全路径”。文件描述符是需要我们用open系统调用后才能得到的,而文件全路经直接写就可以了。

stat和lstat的区别:当文件是一个符号链接时,lstat返回的是该符号链接本身的信息;而stat返回的是该链接指向的文件的信息。(似乎有些晕吧,这样记,lstat比stat多了一个l,因此它是有本事处理符号链接文件的,因此当遇到符号链接文件时,lstat 当然不会放过。而stat系统调用没有这个本事,它只能对符号链接文件睁一只眼闭一只眼,直接去处理链接所指文件喽)void report(struct stat *ptr)

{

printf("The major device no is:%d\n",major(ptr->st_dev));//主设备号

printf("The minor device no is:%d\n",minor(ptr->st_dev));//从设备号

printf("The file's node number is:%d\n",ptr->st_ino);//文件节点号

printf("The file's access mode is:%d\n",ptr->st_mode);//文件的访问模式

printf("The file's hard link number is:%d\n",ptr->st_nlink);//文件的硬链接数目

printf("The file's user id is:%d\n",ptr->uid);//文件拥有者的ID

printf("The file's group id is:%d\n",ptr->gid);//文件的组ID

printf("The file's size is:%d\n",ptr->st_size);//文件的大小

printf("The block size is:%d\n",ptr->blksize);//文件占用的块数量

printf("The number of allocated blocks is:%d\n",ptr->st_blocks);//文件分配块数量

struct tm*accesstime,*lmodifytime,*lchangetime;//访问时间,修改时间,最后一个改变时间(属性)accesstime=localtime(&(ptr->st_atime));

accesstime=localtime(&(ptr->st_mtime));

accesstime=localtime(&(ptr->st_ctime));

printf("The last access time is: %d::%d::%d\n",accesstime->hour,accesstime->min,accesstime->sec);

printf("The last modify time is:%d::%d::%d\n",lmodifytime->hour,lmodifytime->min,lmodifytime->sec);

printf("The last change time is:%d::%d::%d\n",lchangetime->hour,lchangetime->min,lchangetime->sec);

}

结构time_t可用用localtime转换成tm结构,获得本地时间。

(五)随机数发生器

1. rand和srand < stdlib.h >

srand随机数发生器的初始化函数void srand(unsigned int seed);

rand伪随机数发生器int rand(void);

如不用srand((unsigned int)time(NULL));程序会默认调用srand(1);

如果要取得[a,b)之间的数,则num = rand()%(b-a) + a;

伪浮点随机数[a,b)

fnum = rand() /(double)(RAND_MAX/(b-a)) + a; //RAND_MAX==2^15-1

注:a,b均为整数,a != b,且a >= 0;

用rand() / double(RAND_MAX)可以取得0~1之间的浮点数(注意,不同于整型时候的公式,是除以,不是求模),举例:double r=0.0;

srand((unsigned)time(0));

for(int i=0;i<10;i++){

r = rand() / (double)(RAND_MAX);

cout<

例:#include "stdio.h"

#include "stdlib.h"

#include "time.h"

int main(void)

{

int i;

srand((unsigned int)time(NULL)); /*srand((unsigned int)_getpid()); 得到当前进程数*/

printf("Ten random numbers from 0 to 99\n\n");

for(i=0; i<10; i++)

printf("%d\n", rand() % 100);

return 0;

}

2.srandom和random函数(官方推荐VCVS中不能用TC可以,C/C++没此函数)srandom 初始化函数void srandom(unsigned int seed);

random伪随机数发生器long int random(void);

srandom设置种子值,一般与“当前时间 + 进程ID”作为种子,如果没用调用该函数,则通过random返回的默认种子值为1。

#include

#include

int main( void )

{

printf( "Process id: %d\n", _getpid() );//获取进程ID int _getpid( void )

}

函数说明:getpid函数用来取得目前进程的进程识别码,许多程序利用取到的此值来建立临时文件,以避免临时文件相同带来的问题。

返回值:目前进程的进程识别码

fork –创建新进程;exit –终止进程;exec –执行一个应用程序wait –将父进程挂起,等待子进程终止;getpid–获取当前进程的PID;nice –改变进程的优先

3.函数名:time

头文件:time.h

函数原型:time_t time(time_t * timer)

功能: 获取当前的系统时间,返回的结果是一个time_t类型,其实就是一个大整数,其值表示从CUT (Coordinated Universal Time)时间1970年1月1日00:00:00(称为UNIX系统的Epoch时间)到当前时刻的秒数。然后调用localtime将time_t所表示的CUT时间转换为本地时间(我们是+8区,比CUT多8个小时)

并转成struct tm类型,该类型的各数据成员分别表示年月日时分秒。

补充说明:time函数的原型也可以理解为long time(long *tloc),即返回一个long型整数。因为在time.h 这个头文件中time_t实际上就是:

#ifndef _TIME_T_DEFINED

typedef long time_t; /* time value */

#define _TIME_T_DEFINED /* avoid multiple defines of time_t */

#endif

即long。

用time()函数结合其他函数(如:localtime、gmtime、asctime、ctime)可以获得当前系统时间或是标准时间。

#include

#include

#include

int main(void)

{

time_t timer; //time_t就是long int 类型

struct tm *tblock;

timer = time(NULL); //这一句也可以改成time(&timer);

tblock = localtime(&timer);

printf("Local time is: %s\n",asctime(tblock)); //输出:Sun Mar 31 23:59:01 2013

return 0;

}

在标准C/C++中,我们可通过tm结构来获得日期和时间,tm结构在time.h中的定义如下:

#ifndef _TM_DEFINED

struct tm {

int tm_sec; /* 秒–取值区间为[0,59] */

int tm_min; /* 分- 取值区间为[0,59] */

int tm_hour; /* 时- 取值区间为[0,23] */

int tm_mday; /* 一个月中的日期- 取值区间为[1,31] */

int tm_mon; /* 月份(从一月开始,0代表一月)- 取值区间为[0,11] */

int tm_year; /* 年份,其值从1900开始*/

int tm_wday; /* 星期–取值区间为[0,6],其中0代表星期天,1代表星期一,以此类推*/

int tm_yday; / * 从每年的1月1日开始的天数–取值区间为[0,365],其中0代表1月1日,1代表1月2日,以此类推*/

int tm_isdst; /* 夏令时标识符,实行夏令时的时候,tm_isdst为正。不实行夏令时的进候,tm_isdst为0;不了解情况时,tm_isdst()为负。*/

long int tm_gmtoff; /*指定了日期变更线东面时区中UTC东部时区正秒数或UTC西部时区的负秒数*/

const char *tm_zone; /*当前时区的名字(与环境变量TZ有关)*/

};

#define _TM_DEFINED

#endif

ANSI C标准称使用tm结构的这种时间表示为分解时间(broken-down time)。

可以使用的函数是asctime、gmtime()和localtime()将time()获得的日历时间time_t结构体转换成tm结构体。

其中

gmtime()函数是将日历时间转化为世界标准时间(即格林尼治时间),并返回一个tm结构体来保存这个时间,而

localtime()函数是将日历时间转化为本地时间。

asctime()函数将日期转化为字符串输出printf("Local time is: %s\n",asctime(pir)); //输出:Sun Mar 31 23:59:01 2013

原型:struct tm *gmtime(long *clock); struct tm *localtime(const time_t *clock);

localtime函数获得的tm结构体的时间,是已经进行过时区转化为本地时间。

gmtime()函数功能类似获取当前系统时间,只是获取的时间未经过时区转换。别的没区别

localtime功能: 把从1970-1-1零点零分到当前时间系统所偏移的秒数时间转换为日历时间。

说明:此函数获得的tm结构体的时间,是已经进行过时区转化为本地时间。

用法: struct tm *localtime(const time_t *clock);

返回值:返回指向tm 结构体的指针.tm结构体是time.h中定义的用于分别存储时间的各个量(年月日等)的结构体.

程序举例

#include

#include

int main(void)

{

struct tm *ptr;

time_t lt;

lt =time(NULL);

ptr=localtime(<);

printf("second:%d\n",ptr->tm_sec); printf("minute:%d\n",ptr->tm_min); printf("hour:%d\n",ptr->tm_hour); printf("mday:%d\n",ptr->tm_mday); printf("month:%d\n",ptr->tm_mon+1); printf("year:%d\n",ptr->tm_year+1900); return 0;

}

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)

C语言中常见的功能函数

C语言中常见的功能函数(应掌握的编程) 1、两个变量值的交换 void exchang(float *x,float *y) /*形参为两个变量的地铁(指针)*/ {float z; z=*x; *x=*y; *y=z; } void main() {float a,b; scanf(“%f%f”,&a,&b); exchang(&a,&b); /*因为形参是指针,所以实参必须给变量的地址,不能给变量名*/ printf(“a=%f,b=%f”,a,b); } 2、判断一个整数的奇偶 int jou(int n) /*如果是奇数返回1,否则返回0*/ { if(n%2==0) return 0; return 1; } 3、小写字符转换成大写字符 根据实参传给形参的字母,判断是否是小写字母,如果是小写字母,则转换成大写字母,否则不进行转换,函数返回转换后或原来的字符。 本函数仿照toupper()库函数的功能编写(toupper(c) 是将变量c字母转换成大写字母,如果不是小写字母不转换)。 char toupper1(char ch) {if(ch>=?a?&&ch<=?z?) ch-=32; /*小写字母比对应的大写字母ASCII码值大32*/ return ch; } 4、判断一个字符是否是字母(或数字) 根据实参传给形参的字符,判断是否是字母(或数字),如果是字母(或数字)返回1,否则返回0。此函数是根据库函数isalpha()(或isdigit())来编写的。 int isalpha1(char ch) /*判断是否是字母*/ {if(ch>=?A?&&ch<=?Z?||ch>=?a?&&ch<=?z?) return 1; else return 0; } int isdigit1(char ch) /*判断是否是数字字符*/ {if(ch>=?0?&&ch<=?9?) return 1; else return 0; } 5、根据学生成绩,返回其等级 char fun(float cj) {char c; switch((int)cj/10) {case 10:

C语言常用IO函数

一些比较常用的io函数,总结了一下,一块贴出来了 stdin标准输入流 stdout标准输出流 stderr标准错误流 字符IO函数 1.int getchar() 说明:从stdin读取1个字符 返回值:成功,返回该字符;出错,返回EOF; 2.int fgetc(FILE fp) 说明:功能同getchar,默认从文件fp读取; 返回值:成功,返回该字符;出错,返回EOF; 可以重定向 3.int getc(FILE fp) 说明:功能与fgetc相同,但getc既可以被用作 函数实现,也可以被用作宏实现,并且它的编码效率 可能会更高. 可以重定向 4.int putchar(int ch) 说明:向stdout输出字符ch; 返回值:成功,返回该字符;出错,返回EOF; 5.int fputc(int c,FILE fp) 说明:功能同putchar,默认向fp输出字符ch; 返回值:成功,返回该字符;出错,返回EOF; 6.int putc(int c,FILE fp) 说明:功能与fputc相同,但putc与getc一样既可能被用作 函数实现,也可能被用作宏实现,并且它的编码效率可能会更高;可以重定向 字符串IO函数 1.char gets(char str) 说明:从stdin读取字符串(不包括'n')写入到字符串str中; 返回值:成功,返回str首地址;错误,返回NULL; 2.char fgets(char str,int N,FILE fp) 说明:默认从文件fp中读取N个字符(包括'n')写入到字符串str中,

如果实际输入字符串小于N,fgets自动添加'n', 返回值:成功,返回字符串首地址;错误或遇到EOF,返回NULL;可以重定向 3.int puts(const char str) 说明:向stdout输出字符串str,然受输出一个'n', 返回值:成功,返回非负值;错误,EOF; 4.int fputs(const char str,FILE fp) 说明:功能同puts,默认向文件fp写入字符串str; 返回值:成功,返回非负值;错误,EOF; 可以重定向 格式化IO函数 1.int scanf(const char format,...) 说明:根据format从stdin格式化读取N个值,并输入到... 返回值:成功,返回读取的项数;出错,返回EOF 2.int fscanf(FILE fp,const char format,...) 说明:功能同scanf,默认从文件fp读取, 返回值:成功,返回读取的项数;出错或遇到文件尾,返回EOF 可以重定向 3.int sscanf(const char buf,const char format,...) 说明:根据format从buf格式化读取N个值,并输入到... 返回值:成功,返回读取的项数;出错,返回EOF 4.int printf(const char format,...) 说明:根据format格式化数据,并输出到stdout 返回值成功,返回输出字符数;错误,返回负数; 5.int fprintf(FILE fp,const char format,...) 说明:功能同printf,默认向文件fp写入; 可以重定向 6.int sprintf(char buf,const char format,...) 说明:根据format格式化数据,并输出到buf, 返回值:成功,返回输出字符数;错误,返回负数

C语言常用函数手册

1.分类函数,所在函数库为ctype.h int isalpha(int ch) 若ch是字母('A'-'Z','a'-'z')返回非0值,否则返回0 int isalnum(int ch) 若ch是字母('A'-'Z','a'-'z')或数字('0'-'9'),返回非0值,否则返回0 int isascii(int ch) 若ch是字符(ASCII码中的0-127)返回非0值,否则返回0 int iscntrl(int ch) 若ch是作废字符(0x7F)或普通控制字符(0x00-0x1F) 返回非0值,否则返回0 int isdigit(int ch) 若ch是数字('0'-'9')返回非0值,否则返回0 int isgraph(int ch) 若ch是可打印字符(不含空格)(0x21-0x7E)返回非0值,否则返回0 int islower(int ch) 若ch是小写字母('a'-'z')返回非0值,否则返回0 int isprint(int ch) 若ch是可打印字符(含空格)(0x20-0x7E)返回非0值,否则返回0 int ispunct(int ch) 若ch是标点字符(0x00-0x1F)返回非0值,否则返回0 int isspace(int ch) 若ch是空格(' '),水平制表符('\t'),回车符('\r'), 走纸换行('\f'),垂直制表符('\v'),换行符('\n') 返回非0值,否则返回0 int isupper(int ch) 若ch是大写字母('A'-'Z')返回非0值,否则返回0 int isxdigit(int ch) 若ch是16进制数('0'-'9','A'-'F','a'-'f')返回非0值, 否则返回0 int tolower(int ch) 若ch是大写字母('A'-'Z')返回相应的小写字母('a'-'z') int toupper(int ch) 若ch是小写字母('a'-'z')返回相应的大写字母('A'-'Z') 2.数学函数,所在函数库为math.h、stdlib.h、string.h、float.h int 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为弧度

C语言中常用的库函数

字符处理函数 本类别函数用于对单个字符进行处理,包括字符的类别测试和字符的大小写转换 头文件ctype.h 函数列表<> 函数类别函数用途详细说明 字符测试是否字母和数字isalnum 是否字母isalpha 是否控制字符iscntrl 是否数字isdigit 是否可显示字符(除空格外)isgraph 是否可显示字符(包括空格)isprint 是否既不是空格,又不是字母和数字的可显示字符ispunct 是否空格isspace 是否大写字母isupper 是否16进制数字(0-9,A-F)字符isxdigit 字符大小写转换函数转换为大写字母toupper 转换为小写字母tolower 地区化 本类别的函数用于处理不同国家的语言差异。 头文件local.h 函数列表 函数类别函数用途详细说明 地区控制地区设置setlocale 数字格式约定查询国家的货币、日期、时间等的格式转换localeconv 数学函数 本分类给出了各种数学计算函数,必须提醒的是ANSI C标准中的数据格式并不符合IEEE754标准,一些C语言编译器却遵循IEEE754(例如frinklin C51) 头文件math.h 函数列表 函数类别函数用途详细说明 错误条件处理定义域错误(函数的输入参数值不在规定的范围内) 值域错误(函数的返回值不在规定的范围内) 三角函数反余弦acos 反正弦asin

反正切atan 反正切2 atan2 余弦cos 正弦sin 正切tan 双曲函数双曲余弦cosh 双曲正弦sinh 双曲正切tanh 指数和对数指数函数exp 指数分解函数frexp 乘积指数函数fdexp 自然对数log 以10为底的对数log10 浮点数分解函数modf 幂函数幂函数pow 平方根函数sqrt 整数截断,绝对值和求余数函数求下限接近整数ceil 绝对值fabs 求上限接近整数floor 求余数fmod 本分类函数用于实现在不同底函数之间直接跳转代码。头文件setjmp.h io.h 函数列表 函数类别函数用途详细说明 保存调用环境setjmp 恢复调用环境longjmp 信号处理 该分类函数用于处理那些在程序执行过程中发生例外的情况。 头文件signal.h 函数列表 函数类别函数用途详细说明 指定信号处理函数signal 发送信号raise 可变参数处理 本类函数用于实现诸如printf,scanf等参数数量可变底函数。

C语言常见基本词汇及词汇解释

C语言常用基本词汇及其他提示语运算符与表达式: 1.constant 常量 2. variable 变量 3. identify 标识符 4. keywords 关键字 5. sign 符号 6. operator 运算符 7. statement语句 8. syntax 语法 9. expression 表达式 10. initialition初始化 11. number format 数据格式 12 declaration 说明 13. type conversion 类型转换 14.define 、definition 定义 条件语句: 1.select 选择 2. expression 表达式 3. logical expression 逻辑表达式 4. Relational expression 关系表达式 5.priority优先

6. operation运算 7.structure 结构 循环语句: 1.circle 循环 2. condition 条件 3. variant 变量 4. process过程 5.priority优先 6. operation运算 数组: 1. array 数组 2. reference 引用 3. element 元素 4. address 地址 5. sort 排序 6. character 字符 7. string 字符串 8. application 应用函数: 1.call 调用 2.return value 返回值 3.function 函数

4. declare 声明 5. `parameter 参数 6.static 静态的 7.extern 外部的 指针: 1. pointer 指针 2. argument 参数 3. array 数组 4. declaration 声明 5. represent 表示 6. manipulate 处理 结构体、共用体、链表: 1 structure 结构 2 member成员 3 tag 标记 4 function 函数 5 enumerate 枚举 6 union 联合(共用体) 7 create 创建 8 insert 插入 9 delete 删除 10 modify 修改

C语言常用函数名及用法

字符函数和字符串函数 头文件:字符串函数头文件:#include 字符函数头文件:#include putchar:输出一个 putchar(a):输出字符变量a的值,(其中a可为字符变量,整形变量,字符常量,整形常量) getchar:输入一个字符 a=getchar(); putchar(a);结果为b printf(格式控制符,输出列表); scanf(格式控制符,地址列表); 输入形式与格式控制部分对应 1.当为两个连续输入时:scanf(“%d%d”,&a,&b); 输入量数据之间可为:一个或多个空格,也可以用enter,tab无逗号时输入时不能用逗号作分隔。 2.格式控制中两%d有两个空格,输入时两数据间应有两个空格或两个以上。 3.当为“:”时输入时应对应一样,当为:scanf(“a=%d,b=%d”,&a,&b);输入a=12,b=22。 4.当格式控制符为%c时,输入时空格与转义字符都作为有效字符记录在里面:scanf(“%c%c%c”,&a,&b,&c); 输入时:ab c↙空间不能插空格或其他符

5. Scanf(“%d%c%f”,&a,&b,&c); 输入时1234a123h26↙在输入遇到时空格回车 tab或其他非法输入就会认定输入完毕 Gets (字符数组):读入字符串函数 Gets(str)从键盘键入a b↙括号里为字符数组str的起始地址,Puts(字符数组):输出字符串函数 Strcat(字符数组1,字符数组2):字符串连接函数(2连接在1后面) Strcpy和strncpy:字符串复制函数 Strcpy(字符数组1,字符数组2):将2复制到1 数组1 要为数组名,字符串2可以为数组名或者字符串 Strncpy(str1,str2,2):将str2的前两个字符复制到str1,取代str1的前两个字符 Strcmp:字符串比较函数 Strcmp(str1,str2):相等则为0(对字符串自左向右逐个字母进行比较) Strlen(字符数组):测字符串的实际长度 Strlwr(字符串)将字符串转换为大写 Strupr(字符串)将字符串转换为小写

C语言常用的库函数

库函数并不是C语言的一部分,它是由编译系统根据一般用户的需要编制并 提供给用户使用的一组程序。每一种C编译系统都提供了一批库函数,不同的 编译系统所提供的库函数的数目和函数名以及函数功能是不完全相同的。ANSI C标准提出了一批建议提供的标准库函数。它包括了目前多数C编译系统所提供 的库函数,但也有一些是某些C编译系统未曾实现的。考虑到通用性,本附录 列出ANSI C建议的常用库函数。 由于C库函数的种类和数目很多,例如还有屏幕和图形函数、时间日期函数、 与系统有关的函数等,每一类函数又包括各种功能的函数,限于篇幅,本附录不 能全部介绍,只从教学需要的角度列出最基本的。读者在编写C程序时可根据 需要,查阅有关系统的函数使用手册。 1.数学函数 使用数学函数时,应该在源文件中使用预编译命令: #include或#include "math.h" 函数名函数原型功能返回值 acos double acos(double x);计算arccos x的值,其中-1<=x<=1计算结果 asin double asin(double x);计算arcsin x的值,其中-1<=x<=1计算结果 atan double atan(double x);计算arctan x的值计算结果 atan2double atan2(double x, double y);计算arctan x/y的值计算结果 cos double cos(double x);计算cos x的值,其中x的单位为弧度计算结果 cosh double cosh(double x);计算x的双曲余弦cosh x的值计算结果 exp double exp(double x);求e x的值计算结果

C语言函数大全

功能: 异常终止一个进程 用法: void abort(void) 函数名: abs 功能: 求整数的绝对值 用法: int abs(int i) 函数名: absread, abswirte 功能: 绝对磁盘扇区读、写数据 用法: int absread(int drive, int nsects, int sectno, void *buffer) int abswrite(int drive, int nsects, in tsectno, void *buffer 函数名: access 功能: 确定文件的访问权限 用法: int access(const char *filename, int amode) 函数名: acos 功能:反余弦函数 用法: double acos(double x) 函数名: allocmem 功能: 分配DOS存储段 用法:int allocmem(unsigned size, unsigned *seg) 函数名: arc 功能: 画一弧线 用法:void far arc(int x, int y, int stangle, int endangle, int radius)函数名: asctime 功能: 转换日期和时间为ASCII码 用法:char *asctime(const struct tm *tblock) 函数名: asin 功能:反正弦函数 用法: double asin(double x) 函数名: assert 功能: 测试一个条件并可能使程序终止 用法:void assert(int test) 函数名: atan 功能: 反正切函数 用法: double atan(double x)

c语言中常用的函数和头文件

头文件ctype.h 函数列表<> 函数类别函数用途详细说明 字符测试是否字母和数字isalnum 是否字母isalpha 是否控制字符iscntrl 是否数字isdigit 是否可显示字符(除空格外)isgraph 是否可显示字符(包括空格)isprint 是否既不是空格,又不是字母和数字的可显示字符ispunct 是否空格isspace 是否大写字母isupper 是否16进制数字(0-9,A-F)字符isxdigit 字符大小写转换函数转换为大写字母toupper 转换为小写字母tolower 地区化 本类别的函数用于处理不同国家的语言差异。 头文件local.h 函数列表 函数类别函数用途详细说明 地区控制地区设置setlocale 数字格式约定查询国家的货币、日期、时间等的格式转换localeconv 数学函数 本分类给出了各种数学计算函数,必须提醒的是ANSI C标准中的数据格式并不符合IEEE754标准,一些C语言编译器却遵循IEEE754(例如frinklin C51) 头文件math.h 函数列表 函数类别函数用途详细说明 错误条件处理定义域错误(函数的输入参数值不在规定的范围内) 值域错误(函数的返回值不在规定的范围内) 三角函数反余弦acos 反正弦asin 反正切atan 反正切2 atan2 余弦cos

正弦sin 正切tan 双曲函数双曲余弦cosh 双曲正弦sinh 双曲正切tanh 指数和对数指数函数exp 指数分解函数frexp 乘积指数函数fdexp 自然对数log 以10为底的对数log10 浮点数分解函数modf 幂函数幂函数pow 平方根函数sqrt 整数截断,绝对值和求余数函数求下限接近整数ceil 绝对值fabs 求上限接近整数floor 求余数fmod 本分类函数用于实现在不同底函数之间直接跳转代码。头文件setjmp.h io.h 函数列表 函数类别函数用途详细说明 保存调用环境setjmp 恢复调用环境longjmp 信号处理 该分类函数用于处理那些在程序执行过程中发生例外的情况。 头文件signal.h 函数列表 函数类别函数用途详细说明 指定信号处理函数signal 发送信号raise 可变参数处理 本类函数用于实现诸如printf,scanf等参数数量可变底函数。 头文件stdarg.h 函数列表

C语言中游戏编程常用的函数实例解说

VGA文本16/256K40*25360*4009*16B8000彩色 CGA文本16/1680*25640*2008*8B8000彩色 2/3EGA文本16/6480*25640*3508*14B8000彩色 VGA(3+)文本16/256K80*25720*4009*16B8000彩色 CGA图形4/1640*25320*2008*8B8000彩色 4/5EGA图形4/6440*25320*2008*8B8000彩色 VGA图形4/256K40*25320*2008*8B8000彩色 CGA图形2/1640*25640*2008*8B8000单色 6EGA图形2/6440*25640*2008*8B8000单色 VGA图形2/256K40*25640*2008*8B8000单色 7MDA/EGA文本单色80*25720*3509*14B0000单色 VGA(7+)文本单色80*25720*4009*16B0000单色 D EGA图形16/6440*25320*2008*8A0000彩色 VGA图形16/256K40*25320*2008*8A0000彩色 E EGA图形16/6480*25640*2008*8A0000彩色 VGA图形16/256K80*25640*2008*8A0000彩色 F EGA/VGA图形单色80*25640*3508*14A0000单色 10EGA图形16/6480*25640*3508*14A0000彩色 VGA图形16/256K80*25640*3508*14A0000彩色 11VGA图形2/256K80*30640*4808*16A0000彩色 12VGA图形16/256K80*30640*4808*16A0000彩色 13VGA图形256/256K40*25320*2008*8A000彩色 常规内存函数 申请函数: malloc(),farmalloc(),calloc(),farcalloc(),realloc(),farealloc()函数名:malloc 功能:内存分配函数 用法:void*malloc(unsigned size); 函数名:farmalloc 功能:从远堆中分配存储块 用法:void far*farmalloc(unsigned long size); 函数名:calloc 功能:分配主存储器 用法:void*calloc(size_t nelem,size_t elsize); 函数名:farcalloc 功能:从远堆栈中申请空间

【C语言吧】做游戏常用函数

时间延迟函数 函数名: delay 功能: 将程序的执行暂停一段时间(毫秒) 用法: void delay(unsigned milliseconds); 重画屏幕区域的函数 函数名:getimage 功能:将指定区域的一个位图存到主存中 用法:void far getimage( int left, int top, int right, int bottom, void far *bitmap); 函数名:putimage 功能:在屏幕上输出一个位图 用法:void far putimage( int x, int y, void far *bitmap, int op ); 图像大小函数 函数名: imagesize 功能: 返回保存位图像所需的字节数 用法: unsigned far imagesize( int left, int top, int right, int bottom ); 异或模式函数 函数名: setwritemode 功能: 设置图形方式下画线的输出模式 用法: void far setwritemode(int mode); 参数MODE可以被设置位COPY_PUT或者XOR_PUT两种模式。当mode被设置为XOR_PUT,其后的图形操作将都采用异或方式。此外之前提到的putimage()函数也可以采用异或模式向屏幕复制图像。 检测键盘输入函数 函数名: kbhit 功能: 检查当前按下的键 用法: int kbhit(void); 键盘接口函数 函数名: bioskey 功能: 直接使用BIOS服务的键盘接口 用法: int bioskey(int cmd); 该函数通过bois中断0x16执行键盘操作,由参数cmd来决定具体的操作。 Cmd 具体操作 0 读取按键的ascii码 1 测试是否有按键如果没有按键返回0 如果按键为ctrl+brk 返回-1 如果是其他按键返回按键本身键值(直到此按键被取出后恢复0) 2 返回shift key 状态 以下是当cmd为2的时候,返回值的具体含义

C语言中最常用标准库函数 - candyliuxj - CSDN博客

C语言中最常用标准库函数- candyliuxj - CSDN博客 C语言中最常用标准库函数收藏 标准头文件包括: <asset.h> <ctype.h> <errno.h> <float.h> <limits.h> <locale.h> <math.h> <setjmp.h> <signal.h> <stdarg.h> <stddef.h> <stdlib.h> <stdio.h> <string.h> <time.h> 一、标准定义(<stddef.h>) 文件<stddef.h>里包含了标准库的一些常用定义,无论我们包含哪个标准头文件,<stddef.h>都会被自动包含进来。 这个文件里定义: l 类型size_t (sizeof运算符的结果类型,是某个无符号整型); l 类型ptrdiff_t(两个指针相减运算的结果类型,是某个有符号整型);

l 类型wchar_t (宽字符类型,是一个整型,其中足以存放本系统所支持的所有本地环境中的 字符集的所有编码值。这里还保证空字符的编码值为0); l 符号常量NULL (空指针值); l 宏offsetor (这是一个带参数的宏,第一个参数应是一个结构类型,第二个参数应是结构 成员名。offsetor(s,m)求出成员m在结构类型t的变量里的偏移量)。 注:其中有些定义也出现在其他头文件里(如NULL)。 二、错误信息(<errno.h>) <errno.h>定义了一个int类型的表达式errno,可以看作一个变量,其初始值为0,一些标准库函数执行中出错时将它设为非0值,但任何标准库函数都设置它为0。 <errno.h>里还定义了两个宏EDOM和ERANGE,都是非0的整数值。数学函数执行中遇到参数错误,就会将errno 置为EDOM,如出现值域错误就会将errno置为ERANGE。 三、输入输出函数(<stdio.h>) 文件打开和关闭: FILE *fopen(const char *filename, const char *mode); int fclose(FILE * stream);

常用C语言标准库函数

常用C语言标准库函数 C语言编译系统提供了众多的预定义库函数和宏。用户在编写程序时,可以直接调用这些库函数和宏。这里选择了初学者常用的一些库函数,简单介绍了各函数的用法和所在的头文件。 1.测试函数 Isalnum 原型:int isalnum(int c) 功能:测试参数c是否为字母或数字:是则返回非零;否则返回零 头文件:ctype.h Isapha 原型:int isapha(int c) 功能:测试参数c是否为字母:是则返回非零;否则返回零 头文件:ctype.h Isascii 原型:int isascii(int c) 功能:测试参数c是否为ASCII码(0x00~0x7F):是则返回非零;否则返回零 头文件:ctype.h Iscntrl 原型:int iscntrl(int c) 功能:测试参数c是否为控制字符(0x00~0x1F、0x7F):是则返回非零;否则返回零头文件:ctype.h Isdigit 原型:int isdigit(int c) 功能:测试参数c是否为数字:是则返回非零;否则返回零。 头文件:ctype.h Isgraph 原型:int isgraph(int c) 功能:测试参数c是否为可打印字符(0x21~0x7E):是则返回非零;否则返回零 头文件:ctype.h Islower 原型:int islower(int c) 功能:测试参数c是否为小写字母:是则返回非零;否则返回零 头文件:ctype.h Isprint 原型:int isprint(int c) 功能:测试参数c是否为可打印字符(含空格符0x20~0x7E):是则返回非零;否则返回零 头文件:ctype.h Ispunct 原型:int ispunct(int c) 功能:测试参数c是否为标点符号:是则返回非零;否则返回零

C语言常用函数

函数名: abort 功能: 异常终止一个进程 用法: void abort(void); 程序例: #include #include int main(void) { printf("Calling abort()\n"); abort(); return 0; /* This is never reached */ } 函数名: abs 功能: 求整数的绝对值 用法: int abs(int i); 程序例: #include #include int main(void) { int number = -1234; printf("number: %d absolute value: %d\n", number, abs(number)); return 0; } 函数名: absread, abswirte 功能: 绝对磁盘扇区读、写数据 用法: int absread(int drive, int nsects, int sectno, void *buffer); int abswrite(int drive, int nsects, in tsectno, void *buffer); 程序例: /* absread example */ #include #include #include #include int main(void) { int i, strt, ch_out, sector; char buf[512]; printf("Insert a diskette into drive A and press any key\n"); getch(); sector = 0; if (absread(0, 1, sector, &buf) != 0) {

C语言常用头文件及函数

#include(errno.h):错误处理 #include (stdio.h):格式化输入与输出函数 fprintf函数,功能:格式输出(文件) fscanf函数,功能:格式输入(文件) printf函数,功能:格式输出(控制台) scanf函数,功能:格式输入(控制台) fclose函数,功能:关闭文件 fopen函数,功能:打开文件 feof函数,功能:文件结尾判断 ferror函数,功能:文件错误检测 freopen函数,功能:将已存在的流指针和新文件连接 setbuf函数,功能:设置磁盘缓冲区 sscanf函数,功能:从缓冲区中按格式输入 sprintf函数,功能:格式输出到缓冲区 remove函数,功能:删除文件 rename函数,功能:修改文件名称 tmpfile函数,功能:生成临时文件名称 tmpnam函数,功能:得到临时文件路径 fgetc函数,功能:输入一个字符(文件) fgets函数,功能:字符串输入(文件) fputc函数,功能:字符输出(文件) fputs函数,功能:字符串输出(文件) gets函数,功能:字符串输入(控制台) getchar函数,功能:字符输入(控制台) getc函数,功能:字符输入(控制台) putc函数,功能:字符输出(控制台) putchar函数,功能:字符输出(控制台) ungetc函数,功能:字符输出到流的头部 fread函数,功能:直接流读操作 fwrite函数,功能:直接流写操作 fgetpos函数,功能:得到文件位置 fsetpos函数,功能:文件位置设置 fseek函数,功能:文件位置移动 ftell函数,功能:得到文件位置 remind函数,功能:文件位置复零位 perror函数,功能:得到错误提示字符串 clearerr函数,功能:错误清除 puts函数,功能:字符串输出(控制台)

C语言中常用函数大全

(一)输入输出常用函数 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,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]Type With:指定输入数据的宽度,遇空格、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

c语言中常用函数大全

如对您有帮助,请购买打赏,谢谢您! (一)输入输出常用函数 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,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]Type With:指定输入数据的宽度,遇空格、Tab、\n结束 *:抑制符scanf(“%2d%*2d%3d”,&num1,&num2) 输入9\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

c语言常用函数手册 chm格式

c语言常用函数手册 chm格式 https://www.doczj.com/doc/8e17977103.html,/downinfo/19389.html 全都很详细例如下面的 函数名: abort 功能: 异常终止一个进程 用法: void abort(void); 程序例: #include #include int main(void) { printf("Calling abort()\n"); abort(); return 0; /* This is never reached */ } 函数名: abs 功能: 求整数的绝对值 用法: int abs(int i); 程序例: #include #include int main(void) { int number = -1234; printf("number: %d absolute value: %d\n", number, abs(number)); return 0; } 函数名: absread, abswirte 功能: 绝对磁盘扇区读、写数据

用法: int absread(int drive, int nsects, int sectno, void *buffer); int abswrite(int drive, int nsects, in tsectno, void *buffer); 程序例: /* absread example */ #include #include #include #include int main(void) { int i, strt, ch_out, sector; char buf[512]; printf("Insert a diskette into drive A and press any key\n"); getch(); sector = 0; if (absread(0, 1, sector, &buf) != 0) { perror("Disk problem"); exit(1); } printf("Read OK\n"); strt = 3; for (i=0; i<80; i++) { ch_out = buf[strt+i]; putchar(ch_out); } printf("\n"); return(0); } 函数名: access 功能: 确定文件的访问权限 用法: int access(const char *filename, int amode); 程序例: #include #include int file_exists(char *filename);

相关主题
文本预览
相关文档 最新文档