【问题标题】:OCaml scan 2 values at time and put in 2 variablesOCaml 一次扫描 2 个值并放入 2 个变量
【发布时间】:2016-05-10 20:51:29
【问题描述】:

我有这个代码:

let d = scanf " %d" (fun a->a)
let nrf = read_int()

我想输入 2 个整数值并按回车键。在 C 语言中,我使用 scanf("%d %d", &x1, &x2); 但是在 OCaml 中,我必须按回车键,然后使用此代码输入第二个值。 有人可以告诉如何在一行中读取两个整数并将它们放入 2 个变量中吗? 感谢您的帮助!

【问题讨论】:

  • 您能否编辑您的代码以编写 let 而不是 Let ? ;-)
  • 谢谢杰弗里 ;-)

标签: ocaml


【解决方案1】:

你可以试试这个:

let (c, d) = Scanf.scanf " %d %d" (fun a b -> (a, b))

运行这段代码时是这样的:

# let (c, d) = Scanf.scanf " %d %d" (fun a b -> (a, b));;
8 144
val c : int = 8
val d : int = 144
#

第二行是用户(即我)输入的输入。

【讨论】:

  • 谢谢!我是 ocaml 的新手,这件事仍然让我感到困惑。
【解决方案2】:

read_int 需要一个包含 int 的字符串(否则,它会引发失败)。 您必须改用 read_line 从输入中读取字符串并返回字符串。 然后,您使用 Jeffrey 提到的 sscanf。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-03
    相关资源
    最近更新 更多