TIM Labs

色々な言語で printf

| コメント(0) | トラックバック(0)

printfといえば、C言語のこれが有名である。

printf("hello, world\n");

というか、プログラミング言語C の本は、これで始まる。

実際にはprintfは、%何とかの形式で色々書式指定することにより、整形されたプリントのために使われる。

C言語のprintfが評価されたのであろう、このprintf が今では多数の言語に実装されている。
Wikipediaにちゃんとprintfのページがあり、英語版の方はしっかり書かれている。
programming languages with printf によると、25ほどのプログラミング言語が並んでいて圧倒される。

printf という関数あるいはメソッドは、実はプログラミング言語だけにとどまらず、シェルにも実装されている。
以下ではbashの例を示すが、他のシェルでも実装されているのではないかと思う。

まずは、基本的な使い方である。
単にメッセージを出したければ、echoを使えば良いだけなのだが、整形を色々したければ、書式指定文字列でできる。

$ greeting="Hello shell"
$ echo $greeting
Hello shell
$ printf "message:%s\n" $greeting
message:Hello
message:shell
$ printf "message:%s\n" "$greeting"
message:Hello shell

printfの出力をシェルの変数に代入して後て使いたいときがある。
そのときは、次のように、printf全体を$()で囲むとできる。

$ text=$(printf "message:%s\n" "$greeting")
$ echo $text
message:Hello shell

10進数、16進数の変換も可能である。

$ v=1000
$ printf "%x\n" $v
3e8
$ printf "%#x\n" $v
0x3e8
シェル上で浮動小数点数の演算も行いたい場合には、 bc(An arbitrary precision calculator language)を使えば可能であるが、そこまでの偏執狂者ではないのでシェル上では浮動小数点は扱わないことにしている。 そういう場合は、何らかのスクリプト言語を使う。
でも、どうしても全てをシェルで書かないと気がすまないシェル教徒を制止する気はない。

トラックバック(0)

トラックバックURL: http://labs.timedia.co.jp/mt/mt-tb.cgi/691

コメントする

このブログ記事について

このページは、fujiが2017年10月22日 00:00に書いたブログ記事です。

ひとつ前のブログ記事は「MATH POWER 2017(最終方向・下)247合体が制限時間ぎりぎりで...」です。

次のブログ記事は「ヒント数16のナンプレ問題が発見された」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。