文章目录
(一)stdio.h头文件
stdio.h1头文件提供了(通用)文件操作、提供窄字符输入输出的函数
参数说明:
- 形参中的…代表不定参(参数个数不唯一)
- %d %x %f …是转换指定符
(二)printf 和 sprintf 函数(C99)
(1)printf() 函数详解
int printf( const char *format, ... );
例:下面printf函数就使用了三个参数。
#include <stdio.h>
int main()
{
int a = 10, b = 20;
int len = printf("a = %d, b = %d\n", a, b);
printf("len = %d\n", len);
}
结果:
printf()功能
从printf给定的参数加载数据,将其转成字符串,将结果写入stdout(标准输出:屏幕)。(当我们看到的a = 10, b = 20 其实是一个字符串,并非真实的整型a和b)
printf()返回值
返回输出的字符串的长度
(2)sprintf() 函数详解
int sprintf( char *buffer, const char *format, ... );
例:sprintf()将字符串 “hello,world 1024” 输出到buffer缓冲区中
#include <stdio.h>
int main()
{
char buffer[128] = {
0};
int a = 1024;
int len = sprintf(buffer,"hello,world %d", a);
//结果:buffer中存放"hello,world 1024"的字符串
printf("buffer %s\n", buffer);
printf("len = %d\n", len);
}
结果:
sprintf() 功能
同理,对sprintf函数也一样,从给定的参数加载数据,转成字符串后,输出到buffer缓冲区中。
sprintf() 返回值:
返回输出的字符串的长度
(三)scanf 和 sscanf 函数(C99)
(1)scanf() 函数详解
int scanf( const char* format, ... );
例:下面scanf函数就使用了三个参数。
#include <stdio.h>
int main()
{
int a = 0, b = 0;
int count = scanf("%d %d", &a, &b);
printf("count = %d\n", count);
}
结果:
scanf()功能
scanf函数从stdin(标准输入:键盘)获取数据,经转译,存储到stdin行输入缓冲区中。
(输入时回显的原因,系统将输入缓冲区的内容输出在(stdout行缓冲区)屏幕上)
scanf()返回值
成功:成功赋值的接收参数的数量
失败:EOF
(2)sscanf() 函数详解
int sscanf( const char* buffer, const char* format, ... );
例:sscanf()把buffer缓冲区中的数据输入到行输入缓冲区
#include <stdio.h>
int main()
{
int a = 0, b = 0;
char buffer[] = {
"10 20"};
int count = sscanf(buffer,"%d %d", &a, &b);
printf("count = %d\n", count);
}
结果:
sscanf()功能
sscanf函数从buffer缓冲区获取数据,经转译,存储到stdin行输入缓冲区中。
sscanf()返回值:
成功:成功赋值的接收参数的数量
失败:EOF