2015-04-07 24 views
0

我在Windows 8.1上运行GPS。
版本信息:
GPS 6.0.1(20140113)托管在i686-pc机的mingw32
GNAT GPL 2014(20140331)如何使GNAT GPS中的执行窗口按照Ada的正确顺序执行文本I/O?

输出是不同的,当我在IDE中运行我的程序,VS当我运行它来自Windows命令行。

鲍勃
你叫什么名字:

在GPS执行窗口,直到我输入的东西,这样就不会显示任何提示?你好,鲍勃!

在命令行中相同的程序工作正常,像这样:

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

如何使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; 
+0

请编辑您的问题,以包含GPS版本和一个[完整的示例](http://stackoverflow.com/help/mcve),它可以重现问题。 – trashgod

+0

好的,我添加了它。 –

回答

1

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

  1. 添加问题后换行(即改变PutPut_Line)。
  2. 修正GPS输出处理,所以在显示程序输出之前不会等待换行。

当然还有第三种选择,接受在IDE中看起来与现实生活中使用情况略有不同的东西。