詰まりながらも実現できたのでメモを残します。
動作確認環境
下記の環境で動作確認しました。OS: ubuntu
leiningen: 2.7.1
clojure: 1.8.0
java: open-jdk-1.8
方法
「print」「\r」「flush」を使います。下記の例では数値を3桁表示するために、「format」も利用しました。
(defn one-line-log [fps] (print "\r" (format "%3dfps" fps)) (flush))
上記の関数をループの中で呼ぶと、改行せずに出力してくれます。
注意点
\rの位置について
\rをprintの最後に配置すると、カーソルが基本的に行の先頭に来るので、プログラムを終えるとその行の内容が消えてしまいます。そのため、\rはprintの第一要素にすることをお勧めします。
flashについて
printだけではログを出力してくれませんでしたが、printを記述した後にflushを記述すると期待通りに出力してくれました。共有したい情報は以上です。
0 件のコメント :
コメントを投稿