我编写了一个接受整数作为输入的程序,并在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;
答案 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;
在程序的启动部分,它将确保此程序包的所有输出都没有前导空格。