尝试在Ada中打印数字时领先的空间

时间:2016-01-25 08:45:56

标签: ada

我编写了一个接受整数作为输入的程序,并在Ada中输出整数作为输出。当我运行该程序时,它会打印该数字,但有几个前导空格。有人知道它为什么会发生吗?这是代码:

with Ada.Text_IO, Ada.Float_Text_IO, Ada.Integer_Text_IO;
use Ada;

procedure Solution is

  Int:   Integer;
begin

 Integer_Text_IO.Get (Int);
 Integer_Text_IO.Put (Int);

end Solution;

Terminal output

2 个答案:

答案 0 :(得分:2)

标准规定了

前导空格:“如果要输出的结果字符序列的字符数小于宽度,则首先输出前导空格以弥补差异。” RM A.10.8(13)

如果您想要不同的行为,请指定宽度,如下所示: Integer_Text_IO.Put (Int, Width => 1);

答案 1 :(得分:0)

Put过程的定义将width参数设置为Field类型。它的定义是......

subtype Field is Integer range 0 .. implementation-defined;

我建议将字段宽度设为0,我认为超过1。

或者您可以设置默认字段宽度...

Ada.Integer_Text_IO.Default_Width = 0;

在程序的启动部分,它将确保此程序包的所有输出都没有前导空格。