2017-01-29 1 views
0

Я практикую Аду и сделал простую программу, которая печатает слово и целое число. Проблема заключается в том, что вывод консоли выглядит следующим образом:Ada: Почему существует большое пространство при печати целого числа на консоль?

Yes  55 

Когда я хочу, чтобы это выглядело как:

Я не знаю, почему существует гигантское пространство, вот мой код:

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; 

Спасибо!

+3

Возможный дубликат [* Есть ли способ форматирования вывода текста в Ada *] (http://stackoverflow.com/questions/6032210/is-there-a-way-to-format-text-output-in-ada). – trashgod

+1

Возможный дубликат [* Отмена пробела после значения 'Integer'Image' * в Ada *] (http://stackoverflow.com/q/1846737/230513). – trashgod

+0

Он помещает достаточно места для хранения любого значения этого типа (включая любые знаки +/-). Вы увидите больший разрыв, если используете Long_Integer и гораздо более короткий, если вы создадите новый тип (например, тип Short - это диапазон 1..10) и создайте Integer_IO с этим новым типом. –

ответ

0

Существует большое пространство для выравнивания цифр при печати в консоли (чтобы было проще сравнивать их, если бы вы печатали много строк).

Если вы хотите, чтобы удалить его, вы можете использовать Width параметр в Integer_IO.Put установить минимальный размер нуля:

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

это было спасибо! так что же является целью этого выравнивания по умолчанию по умолчанию? – Numnumberry