use*_*972 1 input ada gnat output
从Integer输入输入后,它将自动跳过从String获取输入.我不知道为什么?
获取String和Integer输入的简单Ada代码:
with ada.Text_IO; use ada.Text_IO;
with ada.Integer_Text_IO; use ada.Integer_Text_IO;
procedure Main is
inputText: String (1..10);
inputNmbr : Integer;
StringNatural: Integer;
begin
Put_Line("Enter Integer");
Get(inputNmbr,1);
Put_Line("Enter String");
Get_Line(inputText,StringNatural);
Put_Line("===================");
Put("Input for Integer: ");
Put(inputNmbr,1);
Put_Line("");
Put_Line("Input for String: ");
Put_Line(inputText(1..StringNatural));
end Main;
Run Code Online (Sandbox Code Playgroud)
输出:
Enter Integer
2
Enter String
===================
Input for Integer: 2
Input for String:
[2015-07-11 23:01:00] process terminated successfully, elapsed time: 00.86s
Run Code Online (Sandbox Code Playgroud)
Get不会清除键盘缓冲区,所以你有一个回车发送到Get_Line输入.你可以用一个Skip_Line后来Get解决这个问题:
Put_Line("Enter Integer");
Get(inputNmbr,1);
Skip_Line; -- add this
Put_Line("Enter String");
Run Code Online (Sandbox Code Playgroud)
Skip_Line是一个输入过程,将导致输入跳到下一行.这对于从输入缓冲区中删除回车非常有用.应在调用Get过程后执行Skip_Line.它还可用于使程序暂停并等待输入回车.
另请参阅:清除Ada中的键盘缓冲区
| 归档时间: |
|
| 查看次数: |
411 次 |
| 最近记录: |