練習問題 8.12
二つのファイル名を引数にとって、片方のファイルの内容をもう片方にコピーする関数 cp を定義しなさい(一度開いたファイルは最後に閉じることを忘れないように)。
解答
let cp src_file dest_file =
let oc_src = open_in src_file
and oc_dest = open_out dest_file
and str = ref "a"
and end_file = ref false in
while (!end_file == false) do
try
str := input_line oc_src;
output_string oc_dest !str;
output_string oc_dest "\n";
with End_of_file -> end_file := true
done;
flush oc_dest; (* 出力チャネルのバッファをフラッシュ *)
close_out oc_dest;
close_in oc_src
;;
実行例
cp "ex8-12.ml" "rensyu8-12.txt";;
-----<< rensyu8-12.txt >>----------------------------------------------
(* プログラミング in OCaml 練習問題 8.12 *)
(* 練習問題 8.12 *)
(*
二つのファイル名を引数にとって、片方のファイルの内容をもう片方にコピーする関数 cp を定義しなさい(一度開いたファイルは最後に閉じることを忘れないように)。
*)
let cp src_file dest_file =
let oc_src = open_in src_file
and oc_dest = open_out dest_file
and str = ref "a"
and end_file = ref false in
while (!end_file == false) do
try
str := input_line oc_src;
output_string oc_dest !str;
output_string oc_dest "\n";
with End_of_file -> end_file := true
done;
flush oc_dest;
close_out oc_dest;
close_in oc_src
;;
--------------------------------------------------------------------------