我正在使用Get_Line
从用户那里获得输入,
字符串可以是一个命令后跟一个值(命令---一个或多个空格---值 - 新行),如
CMD 4
CMD 6
CMD 10
如何解析各个变量中的命令和值?
到目前为止,我可以在空格之前解析字符串,但是在空格之后如何获取值并将其转换为整数?
for I in ip'Range loop
if ip(I) = ' ' or ip(I) = HT then
Put_Line(CMD);
Put_Line(Integer'Image(Index));
else
CMD(I) := ip(I);
Index := Index+1;
end if;
end loop;
-
由于
答案 0 :(得分:2)
with Ada.Text_IO;
procedure Simple_Command_Parser_1 is
type Commands is (CMD);
type Values is range 4 .. 10;
package Command_Text_IO is new Ada.Text_IO.Enumeration_IO (Commands);
package Value_Text_IO is new Ada.Text_IO.Integer_IO (Values);
Command : Commands;
Value : Values;
begin
loop
Command_Text_IO.Get (Command);
Value_Text_IO.Get (Value);
Ada.Text_IO.Skip_Line;
end loop;
end Simple_Command_Parser_1;