回 帖 发 新 帖 刷新版面

主题:如何限定输入时间?

高人请指教
如何限定在指定的时间内(如30秒)输入一些东西(答案),
而时间到了,就会自动输出另一个题目?

回复列表 (共5个回复)

沙发

http://www.watchina.org/html/web/42302.html

板凳

谢谢,可是这是oop,我要的是pascal。。。

3 楼

用CRT库,如下:
  uses crt,dos;
  var s:string;
function input(maxtime:byte):string;
  function time:real;
    var h,m,s,ss:word;
  begin
    gettime(h,m,s,ss);
    time:=h*3600+m*60+s+ss/100;
  end;
  var
    s:string;
    t1,t2:real;
    c:char;
begin
  t1:=time;s:='';clrscr;
  while (time<t1+maxtime) and (c<>#13) do
    if keypressed then begin
      c:=readkey;
      if c<>#13 then
       if (c=#8) and (length(s)>0) then s:=copy(s,1,length(s)-1){Delete}
        else if length(s)<127 then s:=s+c else write('');{限制长度}
      clrscr;
      write(s);
    end;
  input:=s;
  clrscr;
end;
begin
  s:=input(10);
  clrscr;
  writeln(s);
end.

4 楼

和楼上的思路差不多,呵呵!

伪代码:
s:='';
t:=当前系统时间;
while (当前系统时间-t)<30 do
  if 键盘被按下 then
  begin
    c:=被按下的键;
    s:=s+c;
    等待0.2秒;
  end;

5 楼

Thanks^^

我来回复

您尚未登录,请登录后再回复。点此登录或注册