Ada 编译错误-a-textio.ads上的声明不可见

Ada 编译错误-a-textio.ads上的声明不可见,ada,Ada,我是Ada的新手,不幸的是我遇到了一个问题。这是我的密码: with Ada.Text_Io; with Ada.Integer_Text_Io; --use Ada.Text_Io; --use Ada.Integer_Text_Io; procedure life is type Plansza is array (Integer range <>, Integer range <>) of Integer; File : Ada.Text_IO.File_Ty

我是Ada的新手,不幸的是我遇到了一个问题。这是我的密码:

with Ada.Text_Io;
with Ada.Integer_Text_Io;
--use  Ada.Text_Io;
--use Ada.Integer_Text_Io;


procedure life is
type Plansza is array (Integer range <>, Integer range <>) of Integer;
File : Ada.Text_IO.File_Type;
tab : Plansza(1..4,1..4);
Filename : String := "plansza.txt";

begin
    Ada.Text_IO.Open (File => File, Mode => Ada.Text_IO.In_File, Name => Filename);
    for x in 1..4 loop
        for y in 1..4 loop
            Ada.Text_IO.Get ( File => File, Item => Plansza(x,y) );
        end loop;
    end loop;
    for x in 1..4 loop
        for y in 1..4 loop
            Ada.Text_IO.Put (Item => Plansza(x,y));
        end loop;
        New_Line;
    end loop;

end life;
带有Ada.Text\u Io;
使用Ada.Integer_utext_uuio;
--使用Ada.Text\u Io;
--使用Ada.Integer\u Text\u Io;
程序寿命是
类型Plansza是整数的数组(整数范围,整数范围);
文件:Ada.Text\u IO.File\u类型;
选项卡:Plansza(1..4,1..4);
文件名:字符串:=“plansza.txt”;
开始
Ada.Text_IO.Open(文件=>File,模式=>Ada.Text_IO.In_文件,名称=>Filename);
对于1..4循环中的x
对于1..4循环中的y
Ada.Text_IO.Get(File=>File,Item=>Plansza(x,y));
端环;
端环;
对于1..4循环中的x
对于1..4循环中的y
Ada.Text_IO.Put(Item=>Plansza(x,y));
端环;
新线;
端环;
结束生命;
这就是我得到的:

life.adb:14:17:“设置输出”不可见

life.adb:14:17:a-textio上的不可见声明。ads:114

寿命。adb:18:44:没有候选解释与实际相符:

life.adb:18:73:类型转换的参数必须是单个表达式

生活。亚洲开发银行:18:73:==>在a-textio呼叫“获取”。广告:239

生活。亚洲开发银行:18:73:==>在a-textio呼叫“获取”。广告:205

寿命。adb:23:44:没有候选解释与实际相符:

life.adb:23:44:a-textio声明的对“put”的调用中缺少参数“File”的参数。ads:241

life.adb:23:44:a-textio声明的“put”调用中缺少参数“File”的参数。ads:207

life.adb:23:58:类型转换的参数必须是单个表达式

生活。adb:23:58:==>在a-textio呼叫“放置”。广告:242

生活。adb:23:58:==>在a-textio呼叫“放置”。广告:208

生活。亚洲开发银行:25:25:“新线”不可见

life.adb:25:25:a-textio上的不可见声明。ads:166

life.adb:25:25:a-textio上的不可见声明。ads:165

gnatmake:“life.adb”编译错误


我不知道这些错误是从哪里来的,尤其是这些关于参数的“a-textio.ads上的不可见声明”。

看起来您发布的文件不是您正在编译的文件(没有Set\u输出调用,因此您只能自己处理该文件)

然而

Get和Put被不同的版本重载,没有一个版本与您要求的版本匹配

要获取和放置整数,需要从
Ada.Integer\u Text\u Io
获取和放置整数,而不是
Ada.Text\u Io
。这两个函数都有
With
子句,但随后显式调用了
Text\u IO
子句,它不能对整数进行运算

您正在
从文件中获取
ting并
ting放入控制台;如果这是你想要的,没关系


要使“New\u Line”可见,请取消对Use子句的注释,或者更好地明确说明您需要的新行,例如
Ada.Text\u IO.New\u Line
。(缺少)Set_输出错误可能与此类似。一旦您看到模式,这些都很容易解决。

看起来您发布的文件不是您正在编译的文件(没有Set\u输出调用,因此您可以自己处理该文件)

然而

Get和Put被不同的版本重载,没有一个版本与您要求的版本匹配

要获取和放置整数,需要从
Ada.Integer\u Text\u Io
获取和放置整数,而不是
Ada.Text\u Io
。这两个函数都有
With
子句,但随后显式调用了
Text\u IO
子句,它不能对整数进行运算

您正在
从文件中获取
ting并
ting放入控制台;如果这是你想要的,没关系

要使“New\u Line”可见,请取消对Use子句的注释,或者更好地明确说明您需要的新行,例如
Ada.Text\u IO.New\u Line
。(缺少)Set_输出错误可能与此类似。一旦你看到模式,这些都很容易解决。

你指的是
Plansza(x,y)
Plansza
是一种类型,而不是变量。您可能需要
tab(x,y)
。您可以参考
Plansza(x,y)
Plansza
是一种类型,而不是变量。您可能需要
选项卡(x,y)