我试图在我的程序中输入一个单词,其中限制为16个字符。问题是我必须输入完整的16个字符才能继续执行程序中的下一步。我希望能够输入少于16个字符。这是代码的一部分。字符数组的最大长度
编辑:虽然我仍然有点困惑。我没有使用字符串;我正在使用填充字符的数组,并添加了SextonTecken_Type
的声明。我做了一些改变,但我仍然有同样的问题。我无法输入一个较短的词来推进。
type SextonTecken_Type is
array (1..16) of Character;
procedure Gett(A: out SextonTecken_Type; N: in Integer) is
begin
Put("Type a string (max. 16 characters): ");
for I in 1..16 loop
Get(A(I));
if N=16 then
Skip_Line;
end if;
end loop;
end Gett;
根据定义,'String' **是一个**字符数组;因此,只要'String'的长度为16(否则在运行时会得到一个'Constraint_Error'),而不是复制每个元素,我认为只需在'String'和'SextonTecken_Type'之间进行类型转换即可。 – ajb
@ajb只要元素类型和索引类型的基数相同,就可以通过显式转换进行转换。 –