Comment puis-je remplir une chaîne avec des espaces à gauche lors de l'utilisation de printf?
Par exemple, je veux imprimer "Bonjour" avec 40 espaces le précédant.
De plus, la chaîne que je souhaite imprimer se compose de plusieurs lignes. Dois-je imprimer chaque ligne séparément?
EDIT: Juste pour être clair, je veux exactement 40 espaces imprimés avant chaque ligne.
la source
J'utilise cette fonction pour indenter ma sortie (par exemple pour imprimer une arborescence). Le
indent
est le nombre d'espaces avant la chaîne.la source
printf(..., indent, "", ...)
)Cette instruction réservera une ligne de 40 caractères, imprimera la chaîne à la fin de la ligne (en supprimant les espaces supplémentaires de telle sorte que la longueur totale de la ligne soit constante à 40). La même chose peut être utilisée pour les caractères et les entiers comme suit:
Cette méthode utilisant un paramètre pour déterminer les espaces est utile lorsqu'un nombre variable d'espaces est requis. Ces instructions fonctionneront toujours avec des littéraux entiers comme suit:
J'espère que cela aidera quelqu'un comme moi à l'avenir.
la source
error: empty character constant
pour''
. Ne devrait-il pas l'être' '
?"Hello"
pourrait être n'importe quoi, il aurait dû utiliser un exempleSi vous voulez exactement 40 espaces avant la chaîne, vous devez simplement faire:
Si c'est trop sale, vous pouvez le faire (mais ce sera plus lent que de taper manuellement les 40 espaces):
printf("%40s%s", "", myStr );
Si vous voulez que la chaîne soit alignée à la colonne 40 (c'est-à-dire, ayez jusqu'à 39 espaces en cours de telle sorte que le caractère le plus à droite soit dans la colonne 40), procédez comme suit:
printf("%40s", myStr);
Vous pouvez également mettre "jusqu'à" 40 espaces APRÈS la chaîne en faisant:
printf("%-40s", myStr);
la source