从给定位置加载数据,转换为字符串等价版本,并将结果写入各种池。
2)
写结果到文件流
stream
。
3)
写结果到字符串
buffer
。
4)
写结果到字符串
buffer
。至多写
buf_size
- 1 个字符。产生的字符串会以空字符终止,除非
buf_size
为零。若
buf_size
为零,则不写入任何内容,且
buffer
可以是空指针,然而依旧计算返回值(会写入的字符数,不包含空终止符)并返回。
若调用
sprintf
或
snprintf
导致在重叠的对象间发生复制,则行为未定义。(例如
sprintf
(
buf,
"%s text"
, buf
)
;
)
-
-
-
:转换结果在域内左校正(默认为右校正)
-
+
:有符号转换的符号始终前置于转换结果(默认结果前置负号仅当它为负)
-
空格
:若有符号转换的结果不以符号开始,或为空,则前置空格于结果。若存在
+
标签则忽略
空格
。
-
#
:进行
替用形式
的转换。准确的效果见下表,其他情况下行为未定义。
-
0
:对于整数和浮点数转换,使用前导零代替
空格
字符填充域。对于整数,若显式指定精度,则忽略此标签。对于其他转换,使用此标签导致未定义行为。若存在
-
标签则忽略
0
。
-
-
(可选)
指定最小域宽的整数值或
*
。若有要求,则结果会以
空格
字符(默认情况)填充,在右校正时于左,左校正时于右。使用
*
的情况下,以一个额外的
int
类型参数指定宽度。若参数值为负数,则它导致指定
-
标签和正域宽。(注意:这是最小宽度:决不被截断值)。
-
-
(可选)
后随整数或
*
或两者皆无的
.
指示转换的
精度
。在使用
*
的情况下,
精度
由额外的
int
类型参数指定。若此参数的值为负数,则它被忽略。若既不使用数字亦不使用
*
,则精度采用零。
精度
的准确效果见下表。
-