C++の標準出力ではprintfも使えるけど、coutも使えるね。
いっつも悩むのが、どっちを使うか?って事で…[E:bearing]
これには多分答えが無いような気がする。
printfだと行単位で任意のフォーマットで表示するのが楽。
coutだと複数行の記述でも(ある程度)見やすく書ける。
って所かなぁ。でもprintfでの複数行の表示はprintf自体を分ければ良いわけやし一長一短かな?
printfは良く使うけどcoutは複雑なんで、整形表示の書式を覚書きしときますか。
coutの書式はfstreamのオブジェクトにも使えるはず。つまりcoutなら標準出力やけど、出力ファイルオブジェクト(ofstrem)であればファイルに出力できると思われ。
何はともあれincludeするヘッダファイルを。
#include <iostream>
#include <iomanip>
変数の内容を出力
cout << 変数
指定の幅で出力
cout << setw(文字幅) << 変数;
指定した幅で頭に0詰めして出力
cout << setw(文字幅) << setfill(‘0’) << 変数;
16進数で表示
cout << hex << 変数;
10進数で表示
cout << dec << 変数;
左詰めで出力
cout << left << 変数;
右詰めで出力
cout << right << 変数;
進数設定と詰め方の設定は内部変数に記録されるようです。
よって、一度でも
cout << hex;
とすると、その後の数値型は16進数で表示されてしまう。10進数に戻すには明示的に
cout << dec;
とする必要がありますね。
右詰め、左詰めも同じ。
ちょっと注意が必要やね。
まぁ、この辺を含めて考えると以外とprintfの方が書きやすかったりする。[E:coldsweats01]
coutのメリットは出力する変数の数が多くなっても記述しやすいって事かなぁ。
printfの場合フォーマットに対する引数が可変数引数で渡されてるからフォーマットから要求される変数の数と引数で指定した変数の数が合わないと不正メモリへのアクセスも発生しやすいし、変数の数を変更するのも手間やったりするし。
とは言え、結論は好みって事かなぁ。