Je sais que %%
est utilisé pour échapper réelle %
signes dans une chaîne, donc %%%ds
se terminera avec %10s
dans la chaîne de format suivant, mais je ne sais pas pourquoi je dois %%5s
dans cette chaîne?Chaîne de format avec des signes multiples pour cent
Après tout, il n'y a que deux arguments supplémentaires (BUFFSIZE/10).
#define BUFFSIZE 100
char buf[100]={0}
sprintf(buf, "%%5s %%%ds %%%ds", BUFFSIZE/10, BUFFSIZE/10);
Après avoir exécuté le code ci-dessus, le buf contiendra la chaîne,
%10s %10s
Je reçois '% 5s% 10s% 10s' dans' buf', démo ici http://ideone.com/c8MhN6. Qu'est-ce que vous attendiez? –
Cela signifie que quelqu'un est trop intelligent ou ne connaît pas ['% * s'] (https://stackoverflow.com/questions/7105890/set-variable-text-column-width-in-printf). –
@ n.m. ou, n'a pas peur du mainteneur (_Ref: le psychopathe violent_) –