pascal问题 文件输入输出错误
pascal文件输入输出时总是出现如下错误incompatibletypeforargno.1,gotVOID,expectedTYPFILE在assign(input(...
pascal 文件输入输出时总是出现如下错误
incompatible type for arg no. 1, got VOID, expected TYPFILE
在assign(input(或者ouput),’*.in‘)那行出现此错误
incompatible type for arg no. 1, got VOID, expected FILE
在reset(或者rewrite)(input(或者output))还有close(input(或者output))那行出现此错误;
此问题一直不能解决 求高手指点
回答满意有加分
program treasure;
const
maxn=10000;
maxm=35;
var
i,n:1..maxn;
j,m,m_:0..maxm;
a:-1..maxm;
ladder:array[1..maxn,0..maxm] of integer;
num:array[1..maxn,0..maxm] of longint;
sum:longint;
procedure input;
begin
assign(input,'treasure.in');
reset(input);
readln(n,m);
for i:=1 to n do
for j:=0 to m-1 do
begin
read(ladder[i,j]);
readln(num[i,j]);
end;
readln(a);
close(input);
end;
procedure output;
begin
assign(output,'treasure.out');
rewrite(output);
writeln(sum mod 20123);
close(output);
end;
begin
input;
output;
end.
由于长度限制无法把完整程序给出 只给出了输入输出部分的代码
而且只有用FREE PASCAL和 CENA时才会出现这种情况 用TURBO时程序可以运行 展开
incompatible type for arg no. 1, got VOID, expected TYPFILE
在assign(input(或者ouput),’*.in‘)那行出现此错误
incompatible type for arg no. 1, got VOID, expected FILE
在reset(或者rewrite)(input(或者output))还有close(input(或者output))那行出现此错误;
此问题一直不能解决 求高手指点
回答满意有加分
program treasure;
const
maxn=10000;
maxm=35;
var
i,n:1..maxn;
j,m,m_:0..maxm;
a:-1..maxm;
ladder:array[1..maxn,0..maxm] of integer;
num:array[1..maxn,0..maxm] of longint;
sum:longint;
procedure input;
begin
assign(input,'treasure.in');
reset(input);
readln(n,m);
for i:=1 to n do
for j:=0 to m-1 do
begin
read(ladder[i,j]);
readln(num[i,j]);
end;
readln(a);
close(input);
end;
procedure output;
begin
assign(output,'treasure.out');
rewrite(output);
writeln(sum mod 20123);
close(output);
end;
begin
input;
output;
end.
由于长度限制无法把完整程序给出 只给出了输入输出部分的代码
而且只有用FREE PASCAL和 CENA时才会出现这种情况 用TURBO时程序可以运行 展开
4个回答
展开全部
两个问题 ①
procedure input;改为procedure input1;
procedure output;改为procedure output1;
②我曾经也遇到过这种问题.
这是因为turbo他会每次都自动在你这个pas程序的目录下找输入文件(且每次都要你手动打开),而free pascal是如果你这次是手动打开的这个文件,那么他也会自动在你这个pas程序的目录下找输入文件,但如果你退出free pascal,这时你再打开free pascal,那么他会自动帮你打开这个pas程序,但它这次不是从你这个pas程序的目录下找,而是从free pascal的安装的默认的地方找
曾经我也为此不断的更改,调试程序 后来发现原来不是代码的问题
解决方法:在free pascal的界面下关闭这个程序(window-close),但不要退出free pascal然后再重新手动打开程序即可
procedure input;改为procedure input1;
procedure output;改为procedure output1;
②我曾经也遇到过这种问题.
这是因为turbo他会每次都自动在你这个pas程序的目录下找输入文件(且每次都要你手动打开),而free pascal是如果你这次是手动打开的这个文件,那么他也会自动在你这个pas程序的目录下找输入文件,但如果你退出free pascal,这时你再打开free pascal,那么他会自动帮你打开这个pas程序,但它这次不是从你这个pas程序的目录下找,而是从free pascal的安装的默认的地方找
曾经我也为此不断的更改,调试程序 后来发现原来不是代码的问题
解决方法:在free pascal的界面下关闭这个程序(window-close),但不要退出free pascal然后再重新手动打开程序即可
展开全部
我知道为何了
你的函数名运用了保留字(input,output)
这样就会让编译器搞不清input,output是什么
把函数名改成别的,就行了
你的函数名运用了保留字(input,output)
这样就会让编译器搞不清input,output是什么
把函数名改成别的,就行了
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
同上,注意output,input,to,for等保留字是不能拿来定义变量或者函数,过程等的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
给我看下源程序
追问
今天错误代码又变成了
incompatible type for arg no. 2, got “SHORSTRING”, expected “CHAR”
在assign(input(或者ouput),’*.in‘)那行出现此错误
call by var parameters have to match exactly: got "UNTYPED" expected "TEXT"
在reset(或者rewrite)(input(或者output))还有close(input(或者output))那行出现此错误;
追答
看不到你的源程序,所以没法帮你。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询