我试图制作一个小测试程序来计算字母'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”声明吗?
答案 0 :(得分:0)
WinCrt是一个与单元GRAPH结合使用的无控制台CRT。
使用单位Crt进行正常的控制台输出。
答案 1 :(得分:0)
第一个readln
结束while
循环。请注意,您可以输入多个'。'没有循环退出。请注意,writeln(a)
会延迟,直至您按<Enter>
。第二个readln
允许您查看输出。
进行测试:取消注释readln
并查看是否可以通过输入'。'来结束程序。