查看“Precision can be omitted or be any of:”标题下的信息。
示例:printf("%.*s", 3, "abcdef");
有效,输出:abc
(截断字符串的其余部分。)
现在,我想要一个包含多个参数格式化(截断)的字符串:
printf("%.*s, %.*s", 3, 3, "abcdef", "xyz123");
但程序崩溃了。
正确的语法是什么?
谢谢。
答案 0 :(得分:5)
也许你应该改变秩序?
printf("%.*s, %.*s", 3, "abcdef", 3, "xyz123");
顺便说一句,如果你不需要它作为变量,你可以硬编码:
printf("%.3s, %.3s", "abcdef", "xyz123");
(Stephen Canon善意纠正错字)
答案 1 :(得分:2)
你想这样做:
printf("%.*s, %.*s", 3, "abcdef", 3, "xyz123");
格式参数的顺序应与格式说明符的顺序相同。
答案 2 :(得分:1)
printf("%.*s, %.*s",3,"abcdef",3,"xyz123");