关于printf的格式化字符
%*
*与其它占位符结合使用, *将首先被一个 int 变量值代替后再被格式化.
如
printf("%.*s.", 2, "Hello") 将只输出 "He."
printf("%-*s", 8, "Hello") 将输出 "Hello ."
printf("%*s", 8, "Hello") 将输出" Hello."
%n
将 printf 函数已经格式化完毕的字节数量存入 int * 变量指向的 int 变量中
如
int n = 0;
printf("成绩%d分%n\n", 100, &n);
n 的值将被 printf 函数更改为 UTF-8 编码的字符串 "成绩100分" 所占的字节数 15 .
由于安全原因, 在 ASOP 项目 bionic 中不支持该特性.
Java 中, %n 代表平台无关的换行符(主要为了兼容 Windows 平台的换行符 "\n\r" ).