Sprintf函数的用法:
1.该函数包含在stdio.h的头文件中,使用时需要加入:#include <stdio.h>
2.sprintf与printf函数的区别:二者功能相似,但是sprintf函数打印到字符串中,而printf函数打印输出到屏幕上。sprintf函数在我们完成其他数据类型转换成字符串类型的操作中应用广泛。只要在printf中可以使用的格式化字符串,在sprintf都可以使用。其中的格式化字符串是此函数的精华。
3.sprintf函数的格式:int sprintf( char *buffer, const char *format [, argument,...] );
Format格式详细说明:
%c 一个字符(char)
%d 有符号十进制整数(int)(%ld、%Ld:长整型数据(long),%hd:输出短整形。)
%i 有符号十进制数(与%d相同)
%u 无符号十进制整数(unsignedint)
%e 浮点数e-计数法
%E 浮点数E-计数法
%f 单精度浮点数(float)十进制计数法(%.nf 这里n表示精确到小数点后n位。十进制计数。)
%% 打印一个%
%o 无符号8进制整数
%x 无符号16进制整数(同%X)
例子1.输入16进制数0x31,输出1,3;
int dat;
cin>>hex>>dat;//0x31//或者用函数scanf("&d",dat);
char dat1,dat2;
sprintf(&dat1,"%X",dat&0xf);//16进制的高四位转成字符串
sprintf(&dat2,"%X",dat>>4); //16进制的低四位转成字符串
cout<<dat1;//1
cout<<dat2;//3
例子2.控制宽度和小数点位数,不足宽度的左边补空格
char st[20];
double f=14.309948;
sprintf(st,"%6.2f",f);//" 14.31" (6是宽度,2是小数点后的位数)