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

Input 程序在最后一次输入后立即关闭,input,output,pascal,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('Progra

所以我想为学校写一个程序 问题是,即使使用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.

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

为了防止这种情况,您应该用readlns或至少最后一个read替换所有读取

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

我使用dev pascal作为IDE,我们的教授告诉我们使用它,但程序总是在没有readln的情况下关闭;无论如何,谢谢你的邀请answer@GiovanniSolimeno我用readlnN替换了readN,当我运行它时,它会在关闭应用程序之前等待。我用的是fpc免费的pascal。