Spécifier la largeur maximale du champ printf pour les nombres (tronquer si nécessaire)?

Vous pouvez supprimer des chaînes de caractères avec un printf champ-spécificateur de largeur:

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

> abcde

Malheureusement, il ne fonctionne pas pour les nombres (en remplacement de d avec x est le même):

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

> 1234

Est-il facile/moyen trivial de spécifier le nombre de chiffres à imprimer, même si cela signifie la troncature d'un nombre?

MSDN spécifiquement dit que ça n'arrivera pas qui semble inutilement restrictif. (Oui, il peut être fait par la création de chaînes et, mais je suis l'espoir d'un “printf truc” intelligent ou quelque chose.)

source d'informationauteur Synetech