2016-10-20 2 views
0

임 '초보자는이 작업을 수행합니다 :.OCaml - 어떻게 문자열을 int로 변환합니까? OCaml의 및 Im'trying에서

let medio a b = 
    (a + b);; 
let() = Printf.printf "%d + %d = %d\n" Sys.argv.(1) Sys.argv.(2) (medio Sys.argv.(1) Sys.argv.(2))  

sys.argv에를 (1) [1] ~ C에서

이제 인수이어야 I 내 함수에 대한 매개 변수처럼 그들을 사용하고 싶습니다 medio,하지만 그들은 문자열이야. 어떻게 그들을 int로 만들 수 있습니까? 그것을 할 ocaml 함수가 있습니까? 에서ocaml에서 int (sys.argv (2)) 또는 int atoi (const char * str)입니까?

답변

5

당신은 documentation에 기재된 'int_of_string'기능을 사용할 수의, 형식 사이의 변환이, 기능을 제공한다.

+0

를 사용하려면! – Teshtek

4

나는 int_of_string으로 시작하겠다. 일반적 OCaml의 표준 라이브러리 등 다음 형태 <output>_of_<input> 예컨대 float_of_string, string_of_int,

0

Arg 모듈을 사용하여 명령 줄 인수를 구문 분석 할 수 있습니다.

예 : 그 완벽 좋아 test.ml

let ri_a=ref 0 in 
    let ri_b=ref 0 in 

    Arg.parse [ 
    ("-a",Arg.Int  (function i -> ri_a:=i),""); 
    ("-b",Arg.Int  (function i -> ri_b:=i),""); 
    ] (function s ->()) "ERROR"; 

    Printf.printf "%d %d" !ri_a !ri_b; 

이 그것을

./test -a 2 -b 3 
2 3 
관련 문제