我已经定义了
subtype String10 is String(1..10);
Run Code Online (Sandbox Code Playgroud)
我试图获得键盘输入,而无需在输入之前手动输入空格.我尝试了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;
Run Code Online (Sandbox Code Playgroud)
但是,在这里,我知道这s(i)不起作用,我不认为
"if Ada.Text_IO.End_Of_Line = false then" 
Run Code Online (Sandbox Code Playgroud)
做我希望它会做什么.它只是一个占位符,而我正在寻找实际的方法.
我一直在搜索几个小时,但是Ada文档不像其他语言那样可用或清晰.我找到了很多关于获取字符串的内容,但不是我正在寻找的内容.
我正在使用Ada并获取和int,我需要检查它是否是一个转换为int的字符,将其转换回来并针对字符进行测试.问题是我不想打字
if intToChar(popped) = 'a' | 'A' | 'b' | 'B' | (etc.) 
then
Run Code Online (Sandbox Code Playgroud)
我是Ada的新手,所以我想知道是否有更简单的方法来做到这一点,而不是输入52或者.我尝试了一些事情,但没有成功.
我想知道我是否可以使用类似字符范围'a'...'Z'(也是'a''''Z'得到整个字母?或者'A'..'z'?),但我知道这些是值,在类型中使用时实际上不是字符.
我也可以创建一个函数来检查,但我只需要在代码中的一个位置执行此操作,因此我在这里缺少的快捷方式会很好.我还可以使用一个函数来检查变量是否是一个字符,如果它包含在Ada中.