1
我想讀與Long_Float
值的一列文件內容如下:阿達:在<code>Ada</code>從文件
with Ada.Text_IO; use Ada.Text_IO;
with Ada.Long_Float_Text_IO;
with Ada.Sequential_IO;
procedure Test_Read is
package Seq_Float_IO is new Ada.Sequential_IO (Element_Type => Long_Float);
Input_File : File_Type;
value : Long_Float;
begin
Seq_Float_IO.Open (File => Input_File, Mode => Seq_Float_IO.In_File, Name => "fx.txt");
while not End_OF_File (Input_File) loop
Seq_Float_IO.Read (Input_File, value);
Ada.Long_Float_Text_IO.Put (Item => value, Fore => 3, Aft => 5, Exp => 0);
end loop;
Seq_Float_IO.close (File => Input_File);
end Test_Read;
我得到許多錯誤信息在編譯:
17. Seq_Float_IO.Open (File => Input_File, Mode => Seq_Float_IO.In_File, Name => "fx.txt");
|
>>> expected private type "Ada.Sequential_Io.File_Type" from instance at line 10
>>> found private type "Ada.Text_Io.File_Type"
18. while not End_OF_File (Input_File) loop
19. Seq_Float_IO.Read (Input_File, value);
|
>>> expected private type "Ada.Sequential_Io.File_Type" from instance at line 10
>>> found private type "Ada.Text_Io.File_Type"
文件fx.txt
包含例如:
11.0
23.0
35.0
46.0
不限HEL p將會非常感激。
更新的代碼:
with Ada.Text_IO; use Ada.Text_IO;
procedure Test_Read is
Input_File : File_Type;
value : Character;
begin
Ada.Text_IO.Open (File => Input_File, Mode => Ada.Text_IO.In_File, Name => "fx.txt");
while not End_OF_File (Input_File) loop
Ada.Text_IO.Get (File => Input_File, Item => value);
Ada.Text_IO.Put (Item => value);
Ada.Text_IO.New_Line;
end loop;
Ada.Text_IO.Close (File => Input_File);
end Test_Read;
但現在輸出的是:
1
1
.
0
2
3
.
0
3
5
.
0
4
6
.
的問題是,value
被定義爲character
。如果我想讓value
爲Long_Float
這樣的類型,以便我可以在我的程序中稍後使用數字11.0, 23.0, 35.0 and 46.0
,那麼該怎麼辦?
謝謝。
@ Marc C謝謝。它可以工作,但我希望能夠使用'fx.txt'文件中的值作爲'Long_Floats'。如何讓變量'value'取這些值? **查看我更新的帖子**。我可以定義'value'來存儲一組值,這是另一步。 1投票。 – yCalleecharan 2012-03-20 19:31:20
@yCalleecharan你誤解了我答案的一部分。您使用* Long_Float_Text_IO.Get()*獲取值,請勿使用Text_IO.Get()替換它。因此,將Value作爲Long_Float並使用正確的Get。 – 2012-03-20 19:38:26
@ Marc C非常感謝。現在它工作正常。我很抱歉誤解你之前的評論。 – yCalleecharan 2012-03-20 19:45:09