gpt4 book ai didi

clojure - 如何在 Clojure 中等待按键

转载 作者:行者123 更新时间:2023-12-02 06:43:20 25 4
gpt4 key购买 nike

我想在用户按下某个键时跳出循环。

在 C 语言中我会使用 kbhit()。是否有 Clojure(或 Java)等效项?

最佳答案

您正在寻找 Java 中(Linux?)控制台中按键的非阻塞处理。安earlier question建议使用两个 Java 库来实现这一点。如果不需要便携的话,有解决方案here

基本上,

public class Foo {
public static void main(String[] args) throws Exception {
while(System.in.available() == 0) {
System.out.println("foo");
Thread.sleep(1000);
}
}
}

可以工作,但(在 Linux 上)只有在按“return”后才能工作,因为控制台输入流是缓冲的,这是由操作系统决定的。这意味着您无法通过使用 Channels 或任何其他 NIO 类来克服这个问题。为了确保控制台刷新每个字符,您需要修改终端设置。我曾经编写过一个 C 程序来执行此操作(修改当前终端的 termios 结构的 ICANON 标志),但我不知道如何从 Java 执行此操作(但请参阅 the second link )。

一般来说,您可以通过 searching 在本期找到更多内容对于“java非阻塞输入”。

关于clojure - 如何在 Clojure 中等待按键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4479420/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com