首页 > 编程知识 正文

x什么意思c语言,c语言头函数用法大全

时间:2023-05-03 18:07:21 阅读:149336 作者:4606

C语言是其中广泛的计算机编程语言是所有计算机编程语言的祖先。 其他计算机编程语言包括现在流行的Java语言,都是用C语言实现的。 C语言是一种编程效率高的计算机语言,可以进行上位APP开发和下位硬件驱动编程两者,在计算机编程中尤其是下位硬件驱动开发中具有不可替代的作用。 在c语言学习过程中,除了很好地学习c语言的基本语法外,掌握常用的c语言库函数的使用也非常重要。 本文主要向学生们详细讲解在实际项目开发过程中常用的C语言函数的用法。

1 printf函数

函数原型: intprintf(constchar*format,[argument] );

功能:实现格式输入输出

返回值:实际输出的字符数

函数参数:格式字符串

代理输出的参数

一般的格式类型如下。

d带符号十进制整数

o无符号八进制整数

无u形符号十进制整数

无x符号的十六进制数。 用小写的abcdef表示

无x符号的十六进制数字,用大写的ABCDEF表示

f浮点数

c的单一字符

s字符串

p显示指针。 near指针显示为XXXX,far指针显示为XXXX:YYYY

用法示例:

以十进制输出整形变量a的值;

int a=100;

printf(a=%d(n ),a );

上述程序的执行结果为:画面终端输出为a=100

2 fprintf函数

函数原型: intfprintf(file*stream,const char*format,[argument] ) ) ) ) ) ) ) ) ) )函数) ) ) ) ) ) ) ) )。

功能:将以格式化字符串格式化的数据输出到文件流stream。

返回值:实际写入文件的字符数

函数参数:流输出的文件流指针

格式字符串

代理输出的参数

注: fprintf和printf函数非常相似,用法也一样。 不同之处在于,printf函数将结果输出到标准输出终端,通常输出到屏幕,而fprintf将结果输出到指定的文件流。 如果将参数输出文件流stream设置为标准输出流stdout,则它等效于printf函数,如下所示

fprintf(stdout,const char*format,[argument] ) ) ) ) )。

使用法例:

例如,将格式字符串写入文件file1.txt

file*FP=fopen('file1.txt ',' wb ' );

int count=190;

frintf(FP,' hello :%dn ',count );

上述程序的执行结果是在file1.txt文件中写入“hello :190”字符串。

3 sprintf函数

函数原型: intsprintf(char*buffer,const char*format,[argument] ) ) ) ) ) ) ) ) ) )函数) ) ) ) ) ) ) ) ) )。

功能:将用格式化的字符串格式化的数据输出到字符串buffer

返回值:实际输出到字符串buffer的字符数

函数参数: buffer输出的字符串指针

格式字符串

代理输出的参数

注: sprintf和printf函数非常相似,用法也一样。 不同之处在于,printf函数将结果输出到标准输出终端,通常输出到屏幕,而sprintf将结果输出到指定的字符串buffer。

使用法例:

将格式字符串写入目标字符串buffer

char buffer[50]={0};

int count=190;

fprintf(buffer,' hello :%dn ',count );

执行上述程序时,字符串' hello :190 '将保存在buffer中

4 scanf函数

函数原型:英寸(char * format (,argument,) )

功能:从标准输入设备(一般为键盘)提供格式输入

返回值:成功返回已读取的数据项的数量

函数参数:格式字符串

数组输入数据项的地址列表

典型的格式类型引用printf函数的格式类型

使用法例:

从标准输入设备向整形变量a输入整数,向浮点变量b输入浮点数

int a=0

浮动b=0;

scanf('%d%f )、a和b );

上述程序被执行后,从键盘输入: 19 18.6,程序将19代入变量a,18.6代入变量b。

备注: s

canf 函数格式化字符串中不能加 n,如上例中这样写 scanf("%d%fn",&a,%b) 是错误的。

5 sscanf 函数

函数原型:int sscanf(const char *buffer, char *format [,argument,...])

功能:读取格式化字符串中的位置

返回值:成功返回读入的数据项个数

函数参数:buffer 要读取的格式化字符串

format 格式化字符串

argument 输入数据项的地址列表

备注: sscanf函数的使用和scanf函数非常类似,它们之间的区别在于 scanf函数是从标准输入设备输入,而sscanf 是从指定的字符串输入;

用法举例:

通常使用sscanf函数类实现数据类型转换,将字符串转换为整形或浮点型数据,举例如下:

char str[]="0x1a";

int b=0;

sscanf(str,"0x%x",&b);

上面程序的执行结果将字符串0x1a 转换成对应的16进制值保存到变量b中 .

6 getchar 函数

函数原型: int getchar(void)

功能: getchar 函数的功能是从标准输入设备读取下一个字符,包括回车换行符都能读取

返回值: 成功返回用户输入字符对应的ASCII码,失败返回 -1;

函数参数: 无

备注: getchar 函数实质是从标准输入设备缓冲区读取一个字符,用户调用 getchar 函数的时候,如果标准输入缓冲区没有数据,则等待用户从键盘输入;否则,直接从标准输入缓冲区读取一个字符,而不等待用户从键盘输入;请看下面的例子:

int a = 0;

char b = 0;

scanf("%d", &a);

b=getchar();

在上面代码中,我们首先调用 scanf 函数从键盘输入一个整数到变量a中,接着调用getchar函数从键盘输入一个字符到变量b中;但实际运行时,我们会发现输入整数变量a后,程序并没有停下来让我们输入字符变量b,这是因为我们在输入整形变量a后,输入缓冲区中保存了回车符,程序在执行getchar函数时,发现输入缓冲区中有回车符,直接读取了输入缓冲区中的回车符,而不再等待用户从键盘输入.解决办法是,在调用函数getchar输入字符之前,先清空缓冲区,

如下所示:

int a = 0;

char b = 0;

scanf("%d", &a);

while(getchar()!='n'); //清空输入缓冲区

b=getchar();

上面程序中,在调用getchar()函数从键盘读取字符之前,先执行语句while(getchar()!='n'); 清空输入缓冲区.

用法举例:

从标准输入设备输入一个字符到字符变量 s 中

char s = 0;

s = getchar();

7 fgets 函数

函数原型: char *fgets(char *buf, int bufsize, FILE *stream);

功能: 从文件流stream中读取数据,每次读取一行。读取的数据保存在buf指向的字符数组中。

返回值: 函数执行成功返回buf

失败或读到文件结尾返回NULL

函数参数:buf ,字符指针,用来存取所读取的数据;

bufsize, 整数,buf缓冲区的大小;

stream, FILE指针,表示将要读取的文件流;

备注:使用 fgets函数读取文件流数据的时候,每次多读取bufsize-1个字符(第bufsize个字符赋''),如果文件中的该行,不足bufsize个字符,则读完该行就结束。如若该行(包括后一个换行符)的字符数超过bufsize-1,则fgets只返回一个不完整的行,但是,缓冲区总是以NULL字符结尾,对fgets的下一次调用会继续读该行。如果stream设置为标准输入流 stdin,则表示从标准输入设备键盘读取一行数据;

用法举例:

从标准输入设备读取一行字符串到字符数组 str中

char str[100] = {0};

fgets(str,100,stdin);

printf("%sn",str);

8 memset 函数

函数原型: void *memset(void *buffer, int ch, size_t count)

功能: 将buffer中当前位置后面的count个字节用 ch 替换

返回值: 返回 buffer

函数参数: buffer 指针或数组,内存缓冲区的首地址

ch 赋给 buffer的值

count buffer的长度

备注: memset函数按字节对内存块进行初始化,实际项目开发过程中,我们通常使用memset来对一块内存进行清0或填充某一个特定的值;它是对较大的结构体或数组进行清零操作的一种快方法。

用法举例: 使用memset函数对数组清0

char strbuf[1000];

memset(strbuf,0,1000);

9 memcpy 函数

函数原型: void *memcpy(void *dest, const void *src, size_t n)

功能: 由src指向地址为起始地址的连续n个字节的数据复制到以dest指向地址为起始地址的空间内。

返回值: 函数返回一个指向dest的指针

函数参数: dest 目标数据缓冲区起始地址

src 源数据缓冲区起始地址

n 要复制的字节数

备注: 由于函数拷贝的过程是一个字节一个字节的拷贝的,所以实际操作的时候要把void*强制转化为char*,这样在指针加的时候才会保证每次加一个字节.在实际项目中,通常使用memcpy函数来给结构体变量赋值.

用法举例: 使用memcpy函数将struct sockaddr_in 结构体变量 addr赋值给addrx

memcpy((char *)&addr,(char *)&addrx, sizeof(struct sockaddr_in))

以上就是今天我要给同学讲解的常用C语言函数的使用,当然C语言的库函数还有很多,这里我们就不一一列举了,希望对同学们能有所帮助。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。