C语言sprintf怎么使用?

如题所述

sprintf跟printf在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出。
如:
//把整数123 打印成一个字符串保存在s 中。
sprintf(s, "%d", 123); //产生"123"
可以指定宽度,不足的左边补空格:
sprintf(s, "%8d%8d", 123, 4567); //产生:" 123 4567"
当然也可以左对齐:
sprintf(s, "%-8d%8d", 123, 4567); //产生:"123 4567"
也可以按照16 进制打印:
sprintf(s, "%8x", 4567); //小写16 进制,宽度占8 个位置,右对齐
sprintf(s, "%-8X", 4568); //大写16 进制,宽度占8 个位置,左对齐
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-10
可以这么考虑!函数功能:  把格式化的数据写入某个字符串
头文件:  stdio.h函数原型:  intsprintf(char*buffer,constchar*format,[argument]…);参数列表:  buffer:char型指针,指向欲写入的字符串地址。
  format:char型指针,指向的内存里面存放了格式字符串。
  [argument]...:可选参数,可以是任何类型的数据。
  返回值:字符串长度(strlen)
相关函数:  intsprintf_s(char*buffer,size_tsizeOfBuffer,constchar*format,[argument]...);
  int_sprintf_s_l(char*buffer,size_tsizeOfBuffer,constchar*format,locale_tlocale,[argument]...);
  intswprintf_s(wchar_t*buffer,size_tsizeOfBuffer,constwchar_t*format,[argument]...);
  int_swprintf_s_l(wchar_t*buffer,size_tsizeOfBuffer,constwchar_t*format,locale_tlocale,[argument]…);
  template
  intsprintf_s(char(&buffer)[size],constchar*format,[argument]...);//仅存在于C++
  template
  intswprintf_s(wchar_t(&buffer)[size],constwchar_t*format,[argument]...);//仅存在于C++
编辑本段参数说明及应用举例  sprintf格式的规格如下所示。[]中的部分是可选的。
  %[指定参数][标识符][宽度][.精度]指示符
  若想输出`%'本身时,请这样`%%'处理。
  1.处理字符方向。负号时表示从后向前处理。
  2.填空字元。0的话表示空格填0;空格是内定值,表示空格就放着。
  3.字符总宽度。为最小宽度。
  4.精确度。指在小数点后的浮点数位数。
  =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
转换字符  =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  %%印出百分比符号,不转换。
  %c整数转成对应的ASCII字元。
  %d整数转成十进位。
  %f倍精确度数字转成浮点数。
  %o整数转成八进位。
  %s整数转成字符串。
  %x整数转成小写十六进位。
  %X整数转成大写十六进位。本回答被网友采纳
相似回答