过程读取(s2)不起作用
var
s1, s2: string;
h1, m1: integer;
begin
read(s1);
h1 := Strtoint(s1[1:3]);
m1 := StrtoInt(s1[4:6]);
read(s2);
write(h1, m1);
end.
编译看起来像这样
12:25
1225
它应该是这样的
12:25
(asking s2)
1225
您的变量s1
和s2
声明为字符串,这些可以包含用户可以在键盘上键入的任何字符,以及任意数量的字符。那么,你如何想象程序可以告诉,当用户pressses的关键,无论是应该的一部分,s1
还是s2
?答:不能。
要使您的代码正常工作,请使用readln
代替read
。这样,当readln
执行时,用户必须按Enter来告诉程序完成等待更多字符的输入。
请注意,某些 Pascal 实现允许您编写这样的内容
readln(i1, i2)
其中i1
和i2
是整数。如果用户输入两个由空格或 分隔的整数,这将起作用Tab,因为这样阅读代码可以告诉输入的i1
结束和i2
开始的位置。
还要注意的是
readln;
本身等待用户按下Enter,这是让程序“暂停”的基本方法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句