如何在GNAT GPS中创建执行窗口按照Ada的正确顺序进行文本I / O?

时间:2015-04-07 16:15:17

标签: gps ide ada

我在Windows 8.1上运行GPS 版本信息:
GPS 6.0.1(20140113)托管在i686-pc-mingw32上 GNAT GPL 2014(20140331)

当我在IDE中运行程序时,与从Windows命令行运行程序时的输出不同。

在GPS执行窗口中,在输入内容之前,它不会显示提示,如下所示:

  

鲍勃
  你叫什么名字?嗨,鲍勃!

在命令行中,相同的程序正常工作,如下所示:

  

你叫什么名字?的鲍勃
  嗨,鲍勃!

如何让GPS执行窗口正常工作?

这是我的代码(Demo_Execution_Window.adb):

with Ada.Text_IO,
     Ada.Strings.Unbounded,
     Ada.Strings.Unbounded.Text_IO;

use Ada.Text_IO,
    Ada.Strings.Unbounded,
    Ada.Strings.Unbounded.Text_IO;

procedure Demo_Execution_Window is
   Input : Unbounded_String;
begin
   New_Line;
   Put("What is your name? ");
   Get_Line(Input);
   Put("Hi there, "); Put(Input); Put_Line("!");
end Demo_Execution_Window;

1 个答案:

答案 0 :(得分:1)

我的猜测(我自己不使用GPS)是你的问题只是GPS的行为与你的终端窗口不同。看起来GPS缓冲输出直到程序发送换行。如果我的分析是正确的,您有两种选择:

  1. 在问题后添加换行符(即将Put更改为Put_Line)。
  2. 修正GPS输出处理,因此在显示程序输出之前不会等待换行。
  3. 当然也是第三种选择,即接受IDE中的内容与现实使用相比略有不同。