如何在printf()中使用多个精度?

T.T*_*.T. 0 c string formatting printf char

查看标题" 精确度可以省略或是任何: "的信息.

示例:printf("%.*s", 3, "abcdef"); 工作,输出:( abc截断字符串的其余部分.)

现在,我想要一个包含多个参数格式化(截断)的字符串:

printf("%.*s, %.*s", 3, 3, "abcdef", "xyz123");
Run Code Online (Sandbox Code Playgroud)

但程序崩溃了.

什么是正确的语法?

谢谢.

Jac*_*ack 5

也许你应该改变秩序?

printf("%.*s, %.*s", 3, "abcdef", 3, "xyz123");
Run Code Online (Sandbox Code Playgroud)

顺便说一句,如果你不需要它作为变量,你可以硬编码:

printf("%.3s, %.3s", "abcdef", "xyz123");
Run Code Online (Sandbox Code Playgroud)

(Stephen Canon善意纠正错字)