Combien d'espaces pour le caractère de tabulation (\ t)?
Je veux mettre en œuvre un texte en fonction de dessin. Mais je ne suis pas sûr de savoir comment \t
œuvres, ce qui signifie que je ne sais pas combien d'espaces que je devrais imprimer pour \t
.
Je suis venu avec l'algorithme suivant:
a) Chaque \t
représente au plus NUMBER_OF_SPACES_FOR_TAB
espaces.
b) Si \t
apparaît dans la dernière ligne à la position correspondante, \t
pour cette ligne devrait être aligné à la \t
de la dernière ligne.
Exemple:
printf("a\t\tb\n");
printf("\t\tc\n");
Doit d'impression:
a11112222b
34444c
Où:
1.Nombre i
représente les espaces de \t
à la position i
2.NUMBER_OF_SPACES_FOR_TAB == 4
Personne ne sait à l'algorithme standard? Merci à l'avance.
source d'informationauteur Chao Zhang
Vous devez vous connecter pour publier un commentaire.
Un caractère de tabulation doit avancer à la prochaine taquet de tabulation. Historiquement, les taquets de tabulation ont été tous les 8 caractères, bien que de plus petites valeurs sont d'usage courant aujourd'hui, et la plupart des éditeurs peuvent être configurés.
Je m'attends votre sortie ressembler à ce qui suit:
L'algorithme est de lancer un nombre de colonnes égal à zéro, puis l'incrémente pour chaque personnage de sortie. Lorsque vous arrivez à un onglet, sortie
n-(c%n)
espaces oùc
est le numéro de la colonne (en partant de zéro) etn
est l'onglet espacement.Edit: La formule que j'ai eu à l'origine, était mal depuis plus d'un an, et personne ne m'a appelé sur elle. Désolé. C'est corrigé maintenant.
Imaginer une règle avec des taquets de tabulation toutes les 8 espaces. Un caractère de tabulation sera d'aligner le texte à la prochaine tabulation.
Pour calculer le prochain taquet de tabulation, prendre le courant
column
.La
/8 * 8
partie efficacement tronque le résultat au plus proche multiple de 8. Par exemple, si vous êtes à la colonne 11, puis (11 + 8) est de 19 et 19 /8 est 2, et 2 * 8 à 16. Donc, le prochain taquet de tabulation à partir de la colonne 11 est au niveau de la colonne 16.Dans un éditeur de texte, vous pouvez configurer des taquets de tabulation à des intervalles plus petits, comme tous les 4 espaces. Si vous êtes à la simulation de ce que les onglets de ressembler à un terminal, vous devriez coller avec 8 places par onglet.
Un caractère de Tabulation déplace sur le prochain taquet de tabulation. Par défaut, il y en a un toutes les 8 espaces. Mais dans la plupart des coquilles que vous pouvez modifier facilement à être ce que le nombre de places que vous souhaitez (profil de préférences sous linux, set tabstop dans vim).