本文实例讲述了C++中sprintf使用的方法与printf的区别。分享给大家供大家参考。具体分析如下:
首先我们在MSDN看一下printf的原型和sprintf的原型
int printf( const char *format [, argument]... );
int sprintf( char *buffer, const char *format [, argument] ... );
如果你接触的控制台的程序较多的话,见到printf的比较多,printf函数打印结果到屏幕上,而sprintf函数可以完成其他数据类型转换为字符串。
从以下几点来说明一下
(1)函数的中前两个参数是固定外,可选参数是任意个,buffer是存放字符串指针或者数组名字,fromat是格式化字符串,只要是printf使用的格式化字符串,在sprintf都可以使用,格式化字符串是该函数的精髓。
(2)首先可以把一个整型数据格式化为字符串。比如:
char str[20]; int i_arg = 12345; sprintf(buf,"%-6d",i_arg);
char str[20]; double d_arg = 3.1415926; sprintf(str,"%6.2f",d_arg);
char dest[256]; char src1[] = {'a','b','c','d','e'}; char src2[] ={'1','2','3','4'}; sprintf(dest,"%.5s%.4s",src1,src2);
char dest[256]; char src1[] = {'a','b','c','d','e'}; char src2[] ={'1','2','3','4'}; sprintf(dest,"%.*s%.*s",2,src1,3,src2);
sprintf(str,"%*.*",10,4,d_arg);
int i=2; sprintf(str,"%0*x",sizeof(void *),&i);
sprintf(str,"%p",&i);
此外这些都是都是多字节类型(ANSI)的函数,而对于unicode类型的应该使用的相似的函数:
int wprintf( const wchar_t *format [, argument]... ); int swprintf( wchar_t *buffer, const wchar_t *format [, argument] ... );
希望本文所述对大家的C++程序设计有所帮助。