2015-04-07 26 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中看起來與現實生活中使用情況略有不同的東西。