我在使用 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/