Ada:如何从命令行读取可变长度的字符串

Ada: How to read variable length strings from command line

我正在做一个多堆栈程序,其操作码如下所示:

I2 Sam
I3 Bobby
I1 Steve
D3
I3 Jonathan

"I"表示插入,编号为哪一栈,"D"表示删除,编号为哪一栈。我的问题是,如何从命令行读取每一个并确定要执行的操作?名称是可变长度的,我不能使用堆内存。我能做的一件事是,因为可能的名称列表是已知的,所以将名称变成枚举类型。谢谢!

如果您从标准输入读取值并且至少使用 Ada 2005,则此方法可行:

with Ada.Text_IO;

procedure Foo is
   use Ada.Text_IO;
begin
   while not End_Of_File loop
      declare
         Cur_Line : constant String := Get_Line;
      begin
         -- process the line here
      end;
   end loop;
end Foo;