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

时间:2019-01-03 13:56:18

标签: basic qbasic qb64

我编写了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$

3 个答案:

答案 0 :(得分:1)

此按键功能实际上可以在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."

答案 1 :(得分:1)

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

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

$CONSOLE:ONLY
_DEST _CONSOLE

INPUT A
PRINT A

答案 2 :(得分:0)

只需运行以下代码:它拒绝捕获Win10(作为Linux)中的任何键盘活动。

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

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