本文记录了很少遇到的格式--具体试过就懂了(懒)

%*.* 这两个星号的值分别由第二个和第三个参数的值指定
char *ch="Fuck world !";
printf("%*.*s\n",m,n,ch);
第一个*为输出字符串前空出的字符宽度,对应参数m。
第二个*为输出字符串中字符的个数,对应参数n。
能够对参数m和n赋值,从而控制输出的格式。

%n 与其他格式说明符号不同
(!!某些编译器似乎没有很好的支持呢,建议验证后使用)
%n不向printf传递格式化信息,而是令printf把自己到该点已打出的字符总数放到相应变元指向的整形变量中。
int slen;
printf("hello world%n", &slen);
执行后变量slen被赋值为11。

附带深入知识
Link:深入详解标准C语言IO.
Link:scanf/fscanf 的%[]和%n使用方法

原创文章采用 CC BY-NC-SA 4.0协议 进行许可,转载请著名转自: printf输出格式补充

0 评论