我已经定义
subtype String10 is String(1..10);
我正在尝试在不手动输入空格的情况下获取键盘输入。我尝试使用get_line(),但它似乎不会在输出get_put()命令之前等待输入,并且我认为它只会保留之前字符串中的内容而不填充空格。
我知道并且已经使用了Bounded_String和Unbounded_String,但我想知道是否有一种方法可以使其正常工作。
我尝试为此编写一个函数:
--getString10--
procedure getString10(s : string10) is
c : character;
k : integer;
begin
for i in integer range 1..10 loop
get(c);
if Ada.Text_IO.End_Of_Line = false then
s(i) := c;
else
k := i;
exit;
end if;
end loop;
for i in integer range k..10 loop
s(i) := ' ';
end loop;
end getString10;
但是,在这里,我知道s(i)
不起作用,而且我也不认为
"if Ada.Text_IO.End_Of_Line = false then"
我希望它能够做到我期望的事情,但它只是一个占位符,而我在寻找实际的解决方法。
我已经搜索了几个小时,但Ada文档不像其他语言那样易于获取或清晰。我找到了很多关于获取字符串的信息,但并不是我正在寻找的。
if Ada.Text_IO.End_Of_Line = false then
,而是直接写成if not Ada.Text_IO.End_Of_Line then
。(虽然我认为你也不需要使用End_Of_Line
。) - Keith Thompson