gpt4 book ai didi

ada - 如何阻止控制台窗口立即关闭 | GNAT-GPS

转载 作者:行者123 更新时间:2023-12-02 21:16:10 26 4
gpt4 key购买 nike

我有 Ada 程序,可以使用 GNAT - GPS 完美运行和编译。当我运行其 exe 文件并提供用户输入时,该 exe 会立即关闭,而不是说“按任意键继续”。

我在网上搜索了很多,但我只找到了与使用 system('pause'); 的 c/c++/visual studio 控制台窗口相关的信息。或 Console.Readline()。

用 Ada 语言有什么办法解决这个问题吗?

最佳答案

除了使用 Get_LineGet ,您还可以使用Get_Immediate来自 Ada.Text_IO 包裹。不同的是Get_LineGet将继续读取用户输入,直到 <Enter>已被击中,而Get_Immediate当标准输入连接到交互式设备(例如键盘)时,仅在按下单个键之前才会阻塞。

这是一个例子:

with Ada.Text_IO; use Ada.Text_IO;

procedure Main is
begin

-- Do some interesting stuff here...

declare
User_Response : Character;
begin
Put_Line ("Press any key to continue...");
Get_Immediate (User_Response);
end;

end Main;

注释

  • 您应该在交互式终端(Bash、PowerShell 等)中运行该程序才能实际看到 Get_Immediate 的效果。当您从 GPS 中运行该程序时,您仍然需要按 Enter 键才能实际退出该程序。

  • 这可能太详细了,但我认为Get还在等待<Enter>被按下,因为它使用 fgetc来自底层的 C 标准库 (libc)(请参阅 herehere )。函数fgetc从 C 流读取。 C 流最初是针对交互式设备进行行缓冲的 ( source )。

关于ada - 如何阻止控制台窗口立即关闭 | GNAT-GPS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56347561/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com