随笔 - 15  文章 - 5  trackbacks - 0
<2011年9月>
28293031123
45678910
11121314151617
18192021222324
2526272829301
2345678

常用链接

留言簿

随笔分类

随笔档案

文章分类

文章档案

搜索

  •  

最新评论

  • 1. re: 2011年9月26日[未登录]
  • 我不是吹嘘,为什么1,2,3,4,5,7,9,10,11,12我都知道一点????
    看来我估计可以过电面啊~_~
  • --ZJ
  • 2. re: 2011年9月26日
  • 有计划的人生会很精彩。。
  • --Cheap glueless lace front wigs
  • 3. re: 2011年9月26日
  • (14)举个例子说明你学习能力比较强,
    牛!

    那个腾讯就是做QQ的吧,QQ里面还内嵌个木马,有事没事的扫描下用户磁盘,唉,公司技术就这鸟水平,还对应聘者提那么多要求。
  • --Chipset
  • 4. re: 2011年9月26日
  • 问这么多问题,要求不低啊,呵呵,要回答好需要很扎实的基础
  • --LoveBeyond
  • 5. re: 2011年9月26日
  • 这些问题我十有八九答不上来...惭愧啊
  • --pezy

阅读排行榜

评论排行榜

首先我们在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);
(3)看一个浮点类型的例子。比如:char str[20];double d_arg = 3.1415926;sprintf(str,"%6.2f",d_arg);
可以控制精度
(4)连接两个字符串,也可以将多个字符串连接起来,%m.n在字符串的输出中,m表示宽度,字符串共占的列数;n表示实际的字符数。%m.n在浮点数中,m也表示宽度,n表示小数的位数。比如: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);
补充一点,sprintf的返回值就是字符串的字符的个数,也就是strlen(str)的结果,
也可以打印某个参数的地址
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] ... );

用法和上面的很相似的,就是类型不同而已,
对于printf和sprintf该函数的包含在<stdio.h>头文件
而sprintf和wprintf函数包含在<stdio.h>或者<wchar.h>头文件中。

posted on 2011-09-24 22:14 mengkai 阅读(4040) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理