tôi đã xác địnhAda: Bắt đầu vào sử dụng vào một String (1..10) và điền vào phần còn lại với khoảng trắng
subtype String10 is String(1..10);
và tôi đang cố gắng để có được đầu vào bàn phím để nó mà không cần phải tự nhập khoảng trắng trước nhấn enter. Tôi đã thử get_line() nhưng từ một số lý do nó sẽ không thực sự chờ đợi cho đầu vào trước khi outputting lệnh get put(), và tôi cũng nghĩ rằng nó sẽ chỉ để lại bất cứ điều gì trong chuỗi trước đó và không điền nó với không gian màu trắng.
Tôi biết và đã sử dụng Bounded_String và Unbounded_String, nhưng tôi tự hỏi liệu có cách nào để thực hiện công việc này không.
tôi đã cố gắng thực hiện một chức năng cho nó:
--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;
nhưng, ở đây, tôi biết s(i)
không làm việc, và tôi không nghĩ rằng
"if Ada.Text_IO.End_Of_Line = false then"
làm những gì Tôi hy vọng nó sẽ làm một trong hai. Đó là kinda chỉ là một giữ chỗ trong khi tôi tìm cách thực tế để làm điều đó.
Tôi đã tìm kiếm một vài giờ ngay bây giờ, nhưng tài liệu Ada không có sẵn hoặc rõ ràng như các ngôn ngữ khác. Tôi đã tìm thấy rất nhiều về việc nhận được chuỗi, nhưng không phải những gì tôi đang tìm kiếm.
So sánh bình đẳng với 'true' và' false' không rõ ràng. Thay vì 'nếu Ada.Text_IO.End_Of_Line = false thì', chỉ cần viết' nếu không Ada.Text_IO.End_Of_Line rồi'. (Mặc dù tôi không nghĩ rằng bạn cần phải sử dụng 'End_Of_Line' anyway.) –