输出窗口不显示Pascal(Lazarus编译器)

时间:2014-01-21 16:25:06

标签: pascal lazarus

我试图制作一个小测试程序来计算字母'a'出现在文本中的次数而不使用字符串类型:

program PascalTest;
uses WinCrt;
var 
 a:integer;
 ch:char;
begin
 a:=0;
 writeln('Input text: ');
 read(ch);
 while ch <>'.' do // '.' marking the end of text ("eoln" could've been used instead)//
  begin
   case ch of
   'A','a':a:=a+1;
   end;
   read(ch);
  end;
writeln(a);
readln;
readln; //forcing output window to stay open//
end. 

我注意到如果我不在末尾添加另一个'readln'语句,输出窗口将不会显示结果(如果你愿意,它会立即闪烁)。这只发生在这个程序中。所有其他的只需要一个'readln',这样窗口就可以保持打开状态。有人可以向我解释为什么在这种情况下还需要另一个“readln”声明吗?

2 个答案:

答案 0 :(得分:0)

WinCrt是一个与单元GRAPH结合使用的无控制台CRT。

使用单位Crt进行正常的控制台输出。

答案 1 :(得分:0)

第一个readln结束while循环。请注意,您可以输入多个'。'没有循环退出。请注意,writeln(a)会延迟,直至您按<Enter>。第二个readln允许您查看输出。

进行测试:取消注释readln并查看是否可以通过输入'。'来结束程序。