我有这段代码:
let d = scanf " %d" (fun a->a)
let nrf = read_int()
我想输入2个整数值并按Enter键。在C语言中,我使用scanf("%d %d", &x1, &x2);
但在OCaml中,我必须按Enter键,然后使用此代码输入第二个值。
有人可以告诉如何在一行中读取两个整数并将它们放在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。