ada - Ada 中的 Get_line

标签 ada

我在使用 get_line 变得更具体时遇到了一个小问题,我必须从文件中取出一行并使用它。我不知道特别是如果线条不是由字符构成的,那么在这种情况下我可以使用 get_line 吗? 谢谢。让我们从这个小例子开始:

with Ada.Text_Io;

use Ada.Text_Io;

procedure Getline is

   A:String;

   T:string;

begin

   Open(File => F, Mode => In_File, Name => Nom_Fichier);

   A:=Get_Line(F,In_File, T);

   Put(A);

end Getline;`

最佳答案

看起来您只是在猜测应该传递给 Get_Line 的参数.我建议你看看ARM中的相关部分。 : 函数 Get_Line只需要 File_Type并返回 String ; 程序 Get_Line需要 File_Type并且,作为输出参数,一个 String和一个 Natural .

然后,String是一个 indefinite subtype ,这意味着您必须将某些内容分配给 A在声明中,或为其提供边界。这是示例代码的工作版本:

with Ada.Text_IO; use Ada.Text_IO;

procedure Getline is
   F : File_Type;
   File_Path : constant String := "testfile.stl";
begin
   Open (File => F, Mode => In_File, Name => File_Path);
   declare
      A : String := Get_Line (F);
   begin
      Put (A);
   end;
   Close (File => F);
end Getline;

在你尝试更复杂的东西之前,你应该熟悉这门语言的基础知识。 wikibook是一个很好的起点。如果您想从回答的行中获得有关读取 float 的实际问题,则需要提供有关潜在行的外观的更多详细信息。

关于ada - Ada 中的 Get_line,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19371654/

相关文章:

C++ vs. D、Ada 和 Eiffel(带有模板的可怕错误消息)

centos - Ada 封装库项目 GNAT

c - 将记录数组传递给 ADA 中的 C 例程

netbeans - Ada 与 Netbeans

c - 如何将#define 常量从.h 文件导入Ada?

ada - Ada 程序文本的实际字符集在哪里定义?

c - 这个 C 结构体如何翻译成 Ada

shared-memory - 如何使用 Ada 中的 Linux 将任意字符串写入然后读取到共享内存?

ada - 如何传递判别式 ada 的持续时间?

linux - 空整数数组变量输出为零,有些输出为空。如此迷茫