Указание максимальной ширины поля printf для чисел (усечение при необходимости)?

Вы можете обрезать строки с помощью описателя ширины поля printf:

printf("%.5s", "abcdefgh");

> abcde

К сожалению, это не работает для чисел (замена dна xаналогична):

printf("%2d",   1234);  // for 34
printf("%.2d",  1234);  // for 34
printf("%-2d",  1234);  // for 12
printf("%-.2d", 1234);  // for 12

> 1234

Существует ли простой/тривиальный способ указать количество цифр, напечатано, даже если это означает усечение числа?

MSDN специально говорит, что этого не произойдет, что кажется излишне ограничивающим (Да, это можно сделать, создав строки и тому подобное, но я надеюсь на «трюк с печатью»или хитрый кладж.)

17
задан Kara 6 December 2013 в 05:29
поделиться