printf(3) MudOS v21c2 (5 Sep 1994)
名称:
printf, sprintf - 转换成指定格式的输出结果.
语法:
void printf( string format, ... );
string sprintf( string format, ... );
无传回值 printf( 字串 format, ... );
字串 sprintf( 字串 format, ... );
用法:
以下为 LPC (s)printf() 的格式用法, Lynscar
(Sean A Reith) 加入了一些扩充用法.
目前的版本支援以下的修改格式 (modifier):
" " 在正整数之前放入一个空格.
"+" 在正整数之前放入一个 + 号.
"-" 对齐栏位 (field) 的左边.
请注意: 标准的 (s)printf() 预设是对齐右边,
但是对主要以字串为基础的语言来说,
这样非常奇怪.
在此为了保留与 C 的相容性而保留此一
特性.
"|" 对齐栏位的中心.
"=" 如果字串长度比栏位大小还长, 使用纵列模式
(column mode). 在此只对字串有效, 其他的
型态一律无效. 纵列模式中, 字串中的字会自
动换行 (wrap).
"#" 表格模式. 在栏位之内, 字串中的每一个字会
换一行 (即每个字後面加上 \n). 只对字串有
效.
n 以整数指定栏位大小. 用 * 代替整数则使用
参数指定栏位大小. 如果 n 是 0 , 则此栏
除了资料以外就以空值 (zeros) 填满. 如果
n 不是 0 , 此栏除了资料以外将放入空白字
元 (space) 或是另外指定的字元.
"."n 指定输出的精确度为 n. 普通的字串在此之後
则被截断 (如果精确度 n 大於栏位长度, 则
栏位长度变为精确度 n ). 表格则使用精确度
指定纵列的总数 (如果不指定精确度, 则表格
会自动计算最适合的输出结果). 精确度对於
其他的资料型态无效
":"n n 指定 fs 和精确度, 如果 n 是 0, 则原来
用以填满栏位的空格就代以空值 (zeros)
"@" 参数为一个阵列. 其他除了 @ 以外, 对应的
格式资料亦将用於阵列中的每一个元素.
"'X'" 单引号 (') 中的字元用以填满整个栏位中,
资料以外的空间. (预设值是空白字元) (
如果同时在栏位大小之前指定一个空值, 又指
定 'X' 字串填满栏位, 则以後者为准)
注意: 如果欲填满的字串中要使用单引号 (')
或是双引号 ("), 您必须使用 \' 或 \" 以避
开编译器的检查.
以下是指定型态的格式:
% 此处不指定任何参数, 而以 % 输出. 忽略所
有的修改格式 (modifier).
O 参数为 LPC 资料型态.
s 参数为字串.
d, i 参数为整数, 并以十进位印出.
c 参数为整数, 并以字元印出.
o 参数为整数, 并以八进位印出.
x 参数为整数, 并以十六进位印出.
X 参数为整数, 并以十六进位印出 (A 到 F 以大
写印出).
f 浮点数.
传回值:
sprintf() 传回指定格式的字串.
作者:
Sean A. Reith (Lynscar)
参考:
sscanf(3)
翻译:
Spock @ FF 97.Jul.23. (printed 3/16/95)