我的问题很简单,我的输入看起来像这样......
0 0 0 1 1 1 -1 -1 -1 1
我需要将这些值存储到数组中,但我无法弄明白 . 这就是我到目前为止......
with Ada.Text_IO; use Ada.Text_IO;
procedure Main is
type arr is array(1..10) of Integer;
Data : arr;
begin
for I in 1..arr'Length loop
Data(I) := Integer'Value(Get_Line);
end loop;
end Main;
我知道这是错的,很明显为什么这不起作用 . 我试图将多个值存储到一个整数中,我需要一种迭代输入或一次加载所有值的方法 . 你会怎么在阿达做这个?
2 回答
您可以使用Get_Line将整行作为字符串,然后使用Ada.Integer_Text_IO来解析字符串:
之后,您可以将值加载到循环中的数组中,或者您喜欢 .
输出示例:
编辑:添加更一般的递归选项 . 这将从STDIN读取一行并递归地将值连接成一个数组 . 它使用辅助堆栈在GNAT中执行此操作 .
如果您知道有10个元素可供阅读,那么可以更简单地完成这样的操作:
如果您事先并不知道要读取多少元素,请更新问题 .