当(!kbhit())与COBOL等效时,如何执行此操作?

当(!kbhit())与COBOL等效时,如何执行此操作?,cobol,Cobol,我想使用isCOBOL编译器在COBOL中检测按键事件。怎么做 例如在C中: if(时间==despert\u时间){ 而(!kbhit()){ 嘟嘟声(500500); } }看起来您希望从控制台获得用户交互。 如果未在时间范围内发生:嘟嘟声 PERFORM FOREVER *> or UNTIL EXIT or UNTIL 0 = 1, depending on the available extensions ACCEPT OMITTED *> or ACCEPT DUM

我想使用isCOBOL编译器在COBOL中检测按键事件。怎么做

例如在C中:

if(时间==despert\u时间){
而(!kbhit()){
嘟嘟声(500500);
}

}

看起来您希望从控制台获得用户交互。 如果未在时间范围内发生:嘟嘟声

PERFORM FOREVER *> or UNTIL EXIT or UNTIL 0 = 1, depending on the available extensions
   ACCEPT OMITTED *> or ACCEPT DUMMY [which you'd define as 77 DUMMY PIC X.], depending on the available extensions
      BEFORE TIME 500 *> [or WITH TIMEOUT 500] this is a more or less common extension, with most vendors using a different time scale --> may need to change the 500
   END-ACCEPT
   IF keypressed NOT = timeout *> the actual var to be checked and the timeout value need to be checked in the docs
      EXIT PERFORM
   END-IF
   CALL x'E5'
      ON EXCEPTION *> the system call x'E5' for beep may not be available
         DISPLAY SPACE AT 2080 WITH BEEP *> may not be available, too...
   END-CALL
END-PERFORM

检查编译器附带的在线文档(它“仅适用于客户端”,因此我们无法检查)。

您大概有一本手册?因为COBOL最初设计时没有太多与人类交互的手段,编译器供应商通过自己的扩展扩展了COBOL,可以使用的简单显示和接受选项。您需要了解isCOBOL是否以及如何允许您这样做。
do
是一个简单的内嵌式
PERFORM
.GUI还是非GUI?在控制台中,您可能可以调用Java System.in.Available()(如果终端没有在线缓冲)。如果涉及到图形,那么编写一个小类来添加ActionListener和一个用于keyPressed、keyReleased或keyTyped的处理程序(取决于您想要如何处理它)。简言之,这在Java中可能比在COBOL中更容易实现。如果您确实需要从COBOL执行此操作,请在接受按键后(在GNU/Linux上)使用“stty raw”调用“SYSTEM”,然后使用“stty cook”。Windows控制台将有不同的顺序。如果您不接受(或否决)回答:请始终留下评论。谢谢你。@Jonas,提供的答案对你有用吗?如果是:请将其标记为答案,如果否:请评论您错过的答案。