Глядя на информацию под заголовком " Точность может быть опущена или может быть любой из: ".
Пример: printf("%.*s", 3, "abcdef"); работает, вывод: abc (усечение остальной части строки.)
printf("%.*s", 3, "abcdef");
abc
Теперь я хотел бы иметь строку с несколькими форматированными параметрами (усеченными):
printf("%.*s, %.*s", 3, 3, "abcdef", "xyz123");
но программа вылетает.
Какой правильный синтаксис?
Спасибо.
Может, стоит сменить заказ?
printf("%.*s, %.*s", 3, "abcdef", 3, "xyz123");
Кстати, вы можете жестко закодировать точность, если она вам не нужна как переменная:
printf("%.3s, %.3s", "abcdef", "xyz123");
(Стивен Кэнон любезно исправил опечатку)
Вы хотите сделать это так:
Аргументы формата должны быть в том же порядке, что и спецификаторы формата.
printf("%.*s, %.*s",3,"abcdef",3,"xyz123");