2017-01-29 2 views
0

Je pratique Ada et fait un programme simple qui imprime un mot et un nombre entier. Le problème est que la sortie de la console ressemble:Ada: Pourquoi y a-t-il un grand espace lors de l'impression d'un entier sur la console?

Yes  55 

Quand je veux que ça ressemble à:

Je ne sais pas pourquoi il y a un espace géant, voici mon code:

WITH Ada.Text_IO; USE Ada.Text_IO; 

PROCEDURE Practice IS 
    PACKAGE MyInt_IO IS NEW Ada.Text_IO.Integer_Io(Integer); 
    USE MyInt_IO; 
BEGIN 
    Put("Yes"); Put(55); 
END Practice; 

Merci!

+3

double possible de [* Est-il possible de formater la sortie de texte en Ada *] (http://stackoverflow.com/questions/6032210/is-there-a-way-to-format-text-output-in-ada). – trashgod

+1

Copie possible de [* Annuler l'espace après la valeur * 'Integer'Image' * dans Ada *] (http://stackoverflow.com/q/1846737/230513). – trashgod

+0

Il place suffisamment d'espaces pour contenir n'importe quelle valeur de ce type (y compris les signes +/-). Vous verrez un écart plus grand si vous utilisez Long_Integer, et un plus court si vous créez un nouveau type (par exemple, tapez Short est la plage 1..10) et instanciez Integer_IO avec ce nouveau type. –

Répondre

0

Il y a un grand espace pour aligner correctement les nombres lors de l'impression dans la console (afin de faciliter la comparaison si vous deviez imprimer plusieurs lignes).

Si vous voulez supprimer, vous pouvez utiliser Width paramètre Integer_IO.Put pour définir une taille minimale de zéro:

Put(55, Width => 0); 
+0

c'était c'était grâce! Alors, quel est le but de cet alignement par défaut? – Numnumberry