在PASCAL中使用CRT单元会导致问题

时间:2014-06-12 16:39:50

标签: pascal freepascal crt

我想在某些Pascal代码中使用CRT单元,仅用于“clrscr”函数,但它会导致问题。代码编译得很好,但是一些文本不合适,符号出现在它们不应该的地方。

以下是代码:

program fuel(input, output);


var

 i,vnumber:integer;
 f,f2:text;
 volfuel,dist,totalfuel,totaldist:double;
 ch:char;
 s,z:string;

begin

 assign(f,'fuel.txt');
 assign(f2,'report.txt');
 {$i-}
 reset(f);
 rewrite(f2);
 {$i+}
 if ioresult<>0 then halt;

 totalfuel:=0;
 totaldist:=0;


 s:='~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~';
 writeln(s);
 writeln(f2,s);
 z:='Vehicle No.'+#9+'Fuel Consumption (MPG)';
 writeln(z);
 writeln(f2,z);
 writeln(s);
 writeln(f2,s);

 while not eof(f) do
 begin

 read(f,vnumber);
 read(f,ch);

 read(f,volfuel);
 read(f,ch);

 read(f,dist);

 readln(f);

 totalfuel:=totalfuel+volfuel;
 totaldist:=totaldist+dist;

 writeln(vnumber,#9,(dist/volfuel):15:2);
 writeln(f2,vnumber,#9,(dist/volfuel):15:2);

 end;

 writeln(s);
 writeln(f2,s);
 z:='~~~~~~~~~~~~~~~~~~~~SUMMARY~~~~~~~~~~~~~~~~~~~~~~~~';
 writeln(z);
 writeln(f2,z);
 writeln(s);
 writeln(f2,s);

 writeln('Total Gallons = ',totalfuel:10:2);
 writeln(f2,'Total Gallons = ',totalfuel:10:2);
 writeln('Mean Petrol Consumption = ',totaldist/totalfuel:10:2);
 writeln(f2,'Mean Petrol Consumption = ',totaldist/totalfuel:10:2);

 close(f);
 close(f2);
 readln;
end.

一旦我添加“使用crt;”那是我遇到问题的时候。它不仅仅发生在这个Pascal程序中,我很少做,然后想添加“clrscr”或某种颜色,我不能像添加CRT那样,它会导致间距/格式化问题。

任何帮助都会很棒!

1 个答案:

答案 0 :(得分:0)

如果您的操作系统是Windows,则可能是标签(#9)用法。 Crt接管I / O并可能解释它们。但Windows上的Crt通常应该可以正常工作。详细解释你的问题。