gpt4 book ai didi

ada - 在Ada中的Integer'Image值后取消空格

转载 作者:行者123 更新时间:2023-12-04 06:29:13 25 4
gpt4 key购买 nike

当我在下面打印此过程时-

procedure put (Date:Date_Type) is
begin
Put(Integer'Image(Date.Day)); --'
Put("-");
Put(Integer'Image(Date.Month)); --'
Put("-");
Put(Integer'Image(Date.Year)); --'
end;

结果是(例如):1- 1- 2010

我的问题是如何防止在每个Date值前留一个字符。 (日月年)。
当然,我在记录日期/月份/年份内使用日期过程。

提前致谢。

最佳答案

您有几种选择:

  • 如果您知道Integer值始终为非负数,则可以对字符串进行切片以省略前导空格。
  • 您可以使用Ada.Strings.Fixed.Trim()函数修剪空白。
  • 您可以从Ada.Text_IO.Integer_IO实例化(例如预先实例化的Ada.Integer_Text_IO)中使用Put()过程。

  • 这是一些代码来说明:
    with Ada.Text_IO;
    with Ada.Integer_Text_IO;
    with Ada.Strings.Fixed;

    procedure Int_Image is

    use Ada.Text_IO;
    use Ada.Integer_Text_IO;
    use Ada.Strings.Fixed;

    N : Integer := 20;

    Raw_Image : constant String := Integer'Image(N);

    Trimmed_Image : constant String := Trim(Raw_Image, Ada.Strings.Left);

    Sliced_Image : constant String := Raw_Image(2 .. Raw_Image'Last);

    begin
    Put_Line("Raw 'image :" & Raw_Image & ":");
    Put_Line("Trimmed image :" & Trimmed_Image & ":");
    Put_Line("Sliced image :" & Sliced_Image & ":");
    Put ("'Put' image :");
    Put (N, Width => 0);
    Put_Line(":");
    end Int_Image;

    使用GNAT编译并运行它会产生:
    $./int_image
    Raw 'image : 20:
    Trimmed image :20:
    Sliced image :20:
    'Put' image :20:

    关于ada - 在Ada中的Integer'Image值后取消空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1846737/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com