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