Вы можете обрезать строки с помощью описателя ширины поля 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 специально говорит, что этого не произойдет, что кажется излишне ограничивающим (Да, это можно сделать, создав строки и тому подобное, но я надеюсь на «трюк с печатью»или хитрый кладж.)