Как мне использовать множественные точности в printf ()? - PullRequest
0 голосов
/ 26 апреля 2010

Глядя на информацию под заголовком " Точность может быть опущена или может быть любой из: ".

Пример: printf("%.*s", 3, "abcdef"); работает, вывод: abc (усечение остальной части строки.)

Теперь я хотел бы иметь строку с несколькими форматированными параметрами (усеченными):

printf("%.*s, %.*s", 3, 3, "abcdef", "xyz123");

но программа вылетает.

Какой правильный синтаксис?

Спасибо.

Ответы [ 3 ]

5 голосов
/ 26 апреля 2010

Может, стоит сменить заказ?

printf("%.*s, %.*s", 3, "abcdef", 3, "xyz123");

Кстати, вы можете жестко закодировать точность, если она вам не нужна как переменная:

printf("%.3s, %.3s", "abcdef", "xyz123");

(Стивен Кэнон любезно исправил опечатку)

2 голосов
/ 26 апреля 2010

Вы хотите сделать это так:

printf("%.*s, %.*s", 3, "abcdef", 3, "xyz123");

Аргументы формата должны быть в том же порядке, что и спецификаторы формата.

1 голос
/ 26 апреля 2010
printf("%.*s, %.*s",3,"abcdef",3,"xyz123");
...