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

时间:2012-11-16 03:57:11

标签: ocaml

我正在寻找像input_char stdin这样的东西但不等待返回键。我不会依赖像lambda-term这样的大依赖。

1 个答案:

答案 0 :(得分:9)

以实线处理输入很容易。一次处理一个字符有点依赖于系统。如果您使用的是类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
相关问题