web-dev-qa-db-fra.com

option printf \ t

Lorsque vous imprimez un caractère de tabulation sur la sortie standard à l'aide de printf en C, il génère un espace qui est apparemment de 4 caractères.

printf("\t");

Existe-t-il un moyen de contrôler la largeur de la tabulation dans le cas ci-dessus? Toute aide ou suggestion est appréciée.

21
liv2hak

Un onglet est un onglet. Le nombre d'espaces qu'il consomme est un problème d'affichage et dépend des paramètres de votre Shell.

Si vous souhaitez contrôler la largeur de vos données, vous pouvez utiliser les sous-spécificateurs width dans la chaîne de format printf. Par exemple. :

printf("%5d", 2);

Ce n'est pas une solution complète (si la valeur dépasse 5 caractères, elle ne sera pas tronquée), mais pourrait convenir à vos besoins.

Si vous voulez un contrôle complet, vous devrez probablement l'implémenter vous-même.

23
Sander De Dycker

C'est quelque chose contrôlé par votre terminal, pas par printf.

printf envoie simplement un \t au flux de sortie (qui peut être un tty, un fichier, etc.), il n'envoie pas un certain nombre d'espaces.

46
cnicutar