2

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

3 回答 3

1

这个 keyhit 函数实际上可以在 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."
于 2019-01-19T07:02:50.807 回答
1

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

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

$CONSOLE:ONLY
_DEST _CONSOLE

INPUT A
PRINT A
于 2019-01-21T10:48:14.393 回答
0

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

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

$CONSOLE
_DEST _CONSOLE
$SCREENHIDE
FOR L = 1 TO 10
   PRINT L;
NEXT
DO
    x = _KEYHIT
    IF x THEN END
LOOP
END
于 2019-01-21T03:14:04.633 回答