【发布时间】:2017-11-30 07:57:08
【问题描述】:
我知道%% 用于转义字符串中的实际% 符号,因此%%%ds 将在以下格式字符串中以%10s 结尾,但我不知道为什么我需要%%5s在这个字符串中?
毕竟,只有两个额外的参数(BUFFSIZE / 10)。
#define BUFFSIZE 100
char buf[100]={0}
sprintf(buf, "%%5s %%%ds %%%ds", BUFFSIZE / 10, BUFFSIZE / 10);
上面的代码运行后,buf会包含字符串,
%10s %10s
【问题讨论】:
-
我在
buf中得到%5s %10s %10s,这里是ideone.com/c8MhN6 的演示。 你期待什么? -
这意味着某人要么过于聪明,要么不知道
%*s。 -
@n.m.或者,不怕维护者(Ref: 暴力精神病患者)
标签: c printf string-formatting c-strings