函数功能:把格式化的数据写入某个字符串
头文件:stdio.h
函数原型:int sprintf( char *buffer, const char *format [, argument] … );
返回值:字符串长度(strlen)格式化数字字符串
char buf[20];
//格式化整数
sprintf(buf, "%d", 123); //产生:"123"
sprintf(buf, "%d", -123); //产生:"-123"
sprintf(buf, "%8d%8d", 123, 4567); //产生:"_____123____4567"
sprintf(buf, "%-8d%8d", 123, 4567); //产生:"123_________4567"
sprintf(buf, "%08d", 123); //产生:"00000123"
//格式化十六进制数
sprintf(buf, "%x", 4567); //产生:"11d7"
sprintf(buf, "%X", 4567); //产生:"11D7"
sprintf(buf, "%X", -4567); //产生:"FFFFEE29"
sprintf(buf, "%#X", 4567); //产生:"0X11D7"
sprintf(buf, "%8x", 4567); //产生:"____11d7"
sprintf(buf, "%-8X", 4567); //产生:"11D7____"
sprintf(buf, "%08X", 4567); //产生:"000011D7"
//格式化八进制数
sprintf(buf, "%o", 4567); //产生:"10727"
sprintf(buf, "%o", -4567); //产生:"37777767051"
sprintf(buf, "%8o", 4567); //产生:"___10727"
sprintf(buf, "%-8o", 4567); //产生:"10727___"
sprintf(buf, "%08o", 4567); //产生:"00010727"
//格式化浮点数
sprintf(buf, "%f", 3.1415926); //默认保留6位小数,产生:"3.141593"
sprintf(buf, "%f", -3.1415926); //默认保留6位小数,产生:"-3.141593"
sprintf(buf, "%10.3f", 3.1415626); //产生:"_____3.142"
sprintf(buf, "%-10.4f", 3.1415626); //产生:"3.1416____"
sprintf(buf, "%.5f", 3.1415626); //不指定总宽度,产生:"3.14156"
sprintf(buf, "%.2f", 5); //产生:"0.00"
sprintf(buf, "%.2f", (double)5); //产生:"5.00"
//打印字符
sprintf(buf, "[%c]: %d %#08X", 97, 97, 97);//产生:"[a]: 97 0X000061"
//连接字符串
sprintf(buf, "%s love %s.", "I", "you"); //产生:"I love you."
//采用"*"来占用一个指定宽度或精度的常数数字的位置
sprintf(buf, "%0*d", 8, 123); //产生:"00000123"
sprintf(buf, "%#0*X", 10, 4567); //产生:"0X000011D7"
sprintf(buf, "%.2f", 3.1415626); //产生:"3.14"
//打印内存地址
sprintf(buf, "%u", buf); //产生:"1242760"
sprintf(buf, "%08X", buf); //产生:"0012F688"
sprintf(buf, "%p", buf); //产生:"0012F688"
//补充介绍
#ifndef UNICODE
wsprintf(buf, "%d", 4567); //ASCII字符串
#else
wsprintf(buf, L"%d", 4567); //UNICODE字符串
#endif
//产生"YYYY-MM-DD hh:mm:ss"格式的字符串。
time_t t = time(0);
strftime(buf, sizeof(buf), "%Y-%m-%d %H:%M:%S", localtime(&t)); //产生"2011-07-06 14:32:02"