OCaml在时间上扫描2个值并输入2个变量

时间:2016-05-10 20:51:29

标签: ocaml

我有这段代码:

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

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

2 个答案:

答案 0 :(得分:4)

你可以试试这个:

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
#

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

答案 1 :(得分:0)

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