程序在最后一次输入后立即关闭

时间:2014-09-20 15:09:24

标签: input output pascal

所以我正在尝试为学校写一个程序 问题是,即使使用readln(),程序也会在最后一次输出后立即关闭。 这是代码,但我不知道问题是什么,我已经尝试了一切;

program Calcolo;
var El, EC, S, N:Real;
var nome:string;
function returnVote(a, b, c, d:Real):Real;
begin
returnVote:= a+(2 * b) - (c / 2) - (d / 4);

end;

begin
writeln('Programma per calcolare il voto fornendo il numero di risposte esatte,');
writeln('quelle esatte e incomplete, quelle sbagliate e quelle non date');
writeln('=====================================================================');
writeln('Fornire il nome dello studente: ');
read(nome);
writeln('Fornire il numero di risposte esatte e complete: ');
read(EC);
writeln('Fornire il numero di risposte esatte ma incomplete: ');
read(El);
writeln('Fornire il numero di risposte sbagliate: ');
read(S);
writeln('Fornire il numero di risposte non date: ');
read(N);
writeln('Il voto calcolato per lo studente ', nome,' e di: ', returnVote(El, EC, S, N):3:1);
readln();
end.

1 个答案:

答案 0 :(得分:0)

当用户输入最后一个号码并按Enter键时,该号码将写入N变量,但输入仍保留在缓冲区中。因此,当程序到达最后readln()时,它会读取进入和退出。

为防止这种情况发生,您应该将所有read替换为readln s(或至少替换最后一个)。

也就是说,当你需要查看你的程序在输出中写的内容时,使用readln并不是一个好习惯。如果你使用的是旧的IDE,比如Turbo Pascal,那么有一个菜单项可以在程序终止后显示输出。 现代IDE不会关闭窗口,如果你没有使用任何IDE,那么你可能会在控制台中看到输出。