
C语言是其中最广泛的计算机编程语言. 它是所有计算机编程语言的始祖. 包括当前流行的Java语言在内的其他计算机编程语言均以C语言实现. C语言是用于编程的最有效的计算机语言,它可以完成上层应用程序开发和低级硬件驱动程序编程. 在计算机编程中c语言函数,尤其是在低级硬件驱动程序开发中,它具有不可替代的作用. 在C语言学习过程中,除了学习基本C语言语法外,掌握常用C语言库功能的使用也很重要. 本文主要向学生说明在实际项目开发过程中常用的C语言函数的用法.
1个printf功能
原型: int printf(const char * format,[argument]);
功能: 实现格式化的输入输出
返回值: 实际输出的字符数
功能参数: 格式格式字符串
要输出的参数参数
常用的格式类型为:
d个带符号的十进制整数
无符号八进制整数
u无符号十进制整数
x个无符号十六进制数字,用小写abcdef表示
X个无符号十六进制数字,用大写ABCDEF表示
f浮点数
c单字符
字符串
p显示一个指针,近指针表示为: XXXX,远指针表示为: XXXX: YYYY
用法示例:
以十进制格式输出整数变量a的值;
int a = 100;
printf(“ a =%dn”,a);
上述程序的执行结果为: 在屏幕终端上输出a = 100
2 fprintf函数

原型: int fprintf(FILE *流,const char * format,[argument])
功能: 将根据格式字符串格式化的数据输出到文件流中,
返回值: 实际写入文件的字符数
功能参数: 流文件输出的流指针
格式字符串
要输出的参数参数
备注: fprintf和printf函数非常相似,并且使用方法相同. 区别在于printf函数将结果输出到标准输出终端(通常是屏幕),而fprintf将结果输出到指定的文件流;参数输出文件流stream设置为标准输出流stdout,其等效于printf函数,如下所示:
fprintf(stdout,const char * format,[argument])
用法示例:
例如: 将格式字符串写入文件file1.txt
FILE * fp = fopen(“ file1.txt”,“ wb”);
int计数= 190;
fprintf(fp,“ hello: %dn”,count);
上述程序的执行结果是将字符串“ hello: 190”写入file1.txt文件.
3 sprintf函数
原型: int sprintf(char *缓冲区,const char * format,[自变量])
功能: 将根据格式字符串格式化的数据输出到字符串缓冲区
返回值: 实际输出到字符串缓冲区的字符数
函数参数: 缓冲区要输出的字符串指针
格式字符串
要输出的参数参数
备注: sprintf和printf函数非常相似,并且使用方法相同. 区别在于,printf函数将结果输出到标准输出终端(通常是屏幕),而sprintf将结果输出到指定的字符串缓冲区; <
用法示例:

将格式字符串写入目标字符串缓冲区
字符缓冲区[50] = {0};
int计数= 190;
fprintf(buffer,“ hello: %dn”,count);
执行上述程序后,字符串“ hello: 190”将保存在缓冲区中
4个scanf功能
原型: int scanf(char * format [,argument,...])
功能: 从标准输入设备(通常指键盘)输入格式
返回值: 成功返回读入的数据项的数量
功能参数: 格式格式字符串
参数输入数据项地址列表
常用格式类型是指printf函数的格式类型
用法示例:
将标准输入设备中的整数输入到整数变量a中,并将浮点数输入到浮点变量b中
int a = 0;
float b = 0;
scanf(“%d%f”,&a,&b);
执行上述程序后,从键盘输入: 19 18.6,程序将把19分配给变量a,将18.6分配给变量b.
备注: n不能添加到scanf函数的格式字符串中. 如上例所示,写scanf(“%d%fn”,&a,%b)是错误的.
5 sscanf函数
原型: int sscanf(const char * buffer,char * format [,argument,...])
功能: 读取格式字符串中的位置
返回值: 成功返回读入的数据项的数量

功能参数: 要读取的缓冲区格式字符串
格式字符串
参数输入数据项地址列表
备注: sscanf函数的使用与scanf函数非常相似. 它们之间的区别在于,scanf函数是从标准输入设备输入的,而sscanf是从指定的字符串输入的;
用法示例:
sscanf函数类通常用于实现数据类型转换,将字符串转换为整数或浮点数据,示例如下:
char str [] =“ 0x1a”;
int b = 0;
sscanf(str,“ 0x%x”c语言函数,&b);
上述程序的执行结果将字符串0x1a转换为相应的十六进制值并将其保存在变量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);
功能: 一次从一行读取文件流中的数据. 读取的数据保存在buf指向的字符数组中.
返回值: 函数成功执行并返回buf
失败或NULL返回到文件末尾
函数参数: buf,字符指针,用于访问读取的数据;
bufsize,整数,缓冲区缓冲区的大小;
stream,FILE指针,指示要读取的文件流;
备注: 使用fgets函数读取文件流数据时,最多读取bufsize-1个字符(为bufsize字符分配了“ 0”),如果文件中的行少于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)
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-246002-1.html