2014-06-12 36 views
0

我想在某些Pascal代碼中使用CRT單元,僅用於「clrscr」功能,但它引發了問題。代碼編譯得很好,但是一些文本不合適,符號出現在它們不應該顯示的地方。在PASCAL中使用CRT單元導致問題

下面是代碼:

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時那樣,它會導致間距/格式問題。

任何幫助將是偉大的!

+0

請爲您的操作系統/目標命名。如果* nix,然後嘗試使用像XTERM一樣的像樣的終端。 –

+0

Windows 7/Free Pascal。我會給XTERM一個去,謝謝。 – Liam

+0

添加您的編譯器選項(平臺目標)並打印「問題」,「間距/格式問題」的屏幕。在目前的形式你的問題是模糊的,而不是http://stackoverflow.com/help/mcve也添加到你使用什麼「終端」。 ConEmu? CMD.EXE? – xmojmr

回答

0

如果您的操作系統是Windows,那麼它可能是選項卡(#9)的用法。 Crt接管I/O並可能解釋它們。但在Windows上的Crt應該一般工作正常。詳細說明你的問題。