为什么 INPUT$ 和 INKEY$ 在 Linux 控制台模式下不起作用?



我写了QB64代码来尝试BASIC函数INPUT$INKEY$

该程序在未在 Linux 控制台模式下

运行时运行良好,但如果我们将 SW 设置为在 Linux 控制台模式下运行,则此 SW 无法正常运行。它挂了。

我认为问题是由于 Linux 控制台行为造成的。你有解决方法吗?

下面是简单的代码:

$CONSOLE:ONLY
_DEST _CONSOLE
PRINT "Hit a key"
A$ = INPUT$(1)
PRINT A$
PRINT "Hit a key"
B$ = ""
WHILE B$ = "": B$ = INKEY$: WEND
PRINT B$
PRINT "Hit a key"
C$ = INPUT$(1)
PRINT C$

存在从控制台获取信息的方法。我们可以使用命令 INPUT ,但这不允许我们避免按<输入>键来输入数据。我的问题是关于使用INKEY$INPUT$,这将使我们能够不按<输入键>。

以下代码在 Linux 控制台上正常运行,但不是此问题的解决方案。

$CONSOLE:ONLY
_DEST _CONSOLE
INPUT A
PRINT A

这个按键函数实际上可以在 Linux 中工作:

PRINT "Hit a key:"
DO UNTIL _KEYHIT
    _LIMIT 20
LOOP
PRINT "Key pressed."

或测试密钥:

PRINT "Hit <escape>:"
DO
    _LIMIT 20
    x = _KEYHIT
    IF x = 27 THEN EXIT DO
LOOP
PRINT "Escape pressed."

刚刚运行了这段代码:它拒绝将Win10中的任何键盘活动捕获为Linux。

也许控制台模式仅用于输出!?

$CONSOLE
_DEST _CONSOLE
$SCREENHIDE
FOR L = 1 TO 10
   PRINT L;
NEXT
DO
    x = _KEYHIT
    IF x THEN END
LOOP
END

相关内容

最新更新