如何在没有返回键的情况下读取OCaml中的字符?

如何在没有返回键的情况下读取OCaml中的字符?,ocaml,Ocaml,我正在寻找类似于input\u char stdin的东西,但不需要等待返回键。我不想依赖像lambda term这样的大依赖项。处理整行输入很容易。一次处理一个字符有点依赖于系统。如果您使用的是类Unix系统,您应该能够使用Unix模块执行此操作: let get1char () = let termio = Unix.tcgetattr Unix.stdin in let () = Unix.tcsetattr Unix.stdin Unix.TCSADRAI

我正在寻找类似于
input\u char stdin
的东西,但不需要等待返回键。我不想依赖像lambda term这样的大依赖项。

处理整行输入很容易。一次处理一个字符有点依赖于系统。如果您使用的是类Unix系统,您应该能够使用
Unix
模块执行此操作:

let get1char () =
    let termio = Unix.tcgetattr Unix.stdin in
    let () =
        Unix.tcsetattr Unix.stdin Unix.TCSADRAIN
            { termio with Unix.c_icanon = false } in
    let res = input_char stdin in
    Unix.tcsetattr Unix.stdin Unix.TCSADRAIN termio;
    res