Skip to content

printf

名称

printf, sprintf - 格式化输出

语法

void printf(string format, ... );
string sprintf(string format, ... );

描述

格式化输出信息给当前玩家,format 完整形式为:%[flag][width][.precision]type

当前版本支持以下格式控制符,其中标志位控制符可组合使用:

标志位(flag)

" "     用于整数或者小数,输出值为正时冠以空格,为负时冠以负号。

"+"     用于整数或者小数,表示输出符号(正负号)。如果没有,那么只有负数才会输出符号。

"-"     示左对齐。如果没有,就按照默认的对齐方式,默认为右对齐。

"|"     对齐栏位中心。

"="     用于字符串,如果字符串长度超出栏位宽度,使用纵列模式(column mode),字符串会自动换行。

"#"     用于字符串, 在柆位内使用表格模式(table mode)换行('\n')输出单词列表。

"0"     必须紧随宽度整数前面,将输出的资料空栏位用0填充,直到占满指定栏位列宽为止。

"'X'"   用单引号中的字符填充栏位(默认为用空格填充)(如果即指定用0填充,又指定用字符填充,以后
        指定的为准。注意:如果要用“'”、“"”或“\”填充,必须使用转义字符“\'”、“\"”、“\\”。

"@"     参数是数组,除 "@" 外的其它格式信息会应用于数组中的每一个元素。

输出最小宽度(width)

整数    指定栏位最小宽度(列宽), 使用 '*' 则在输出参数列表中指定宽度。若实际位数多于指定的宽
        度,则按实际位数输出,若实际位数少于定义的宽度则补以空格或0。

精度(.precision)

".整数"     指定栏位的精度, 普通字符串在此之后会被截断(如果精度超出列宽,则列宽等于精度),
            表格模式使用精度指定列数(如果未指定,表格会自动计算最适合的结果)。

":整数"     指定栏位宽度和精度。如果整数前补0,则代替空格使用0补满栏位。

类型(type)

%       简单的说,就是输出 % 用,示例:printf("%%");

O       参数格式为 LPC 数据类型。(可以输出任何类型,方便DEBUG)

s       参数格式为字符串类型。

d, i    把整型参数输出为有符号十进制整数。(i为旧式写法)

c       把整型参数输出为字符。

o       把整型参数输出为无符号八进制整数。(不输出前缀0)

x       把整型参数输出为无符号十六进制整数。(不输出前缀0x,小写a-f)

X       把整型参数输出为无符号十六进制整数。(不输出前缀0x,大写A-F)

f       参数格式为浮点数。

返回值

sprintf() 返回格式化的字符串。

作者

Sean A. Reith (Lynscar)

参考

sscanf(3)

翻译

雪风(i@mud.ren)