読者です 読者をやめる 読者になる 読者になる

YAMAGUCHI::weblog

土足で窓から失礼いたします。今日からあなたの息子になります。 当年とって92歳、下町の発明王、エジソンです。

Printf.printfで表示されない?

OCaml

はじめに

プログラムを実行している時に、各ステップでnotify的な表示をさせたい場合があるときに、Printf.printfを使ってたんですが、表示がうまく行われないことがあってなんでだろうと思ってたので @camlspotter に訊いたのでした。

Printf.printfにはflushが必要

知らなかった!これは落とし穴である。printf使うときはちゃんとflush (%!) してあげないとだめ。

Printf.printf "%d\n%!" 1;;

あるいは単に表示させるだけなら prerr_endline などを使えば自動でflushしてくれるから楽。