Cout

cout.png

coutがprintfよりも優れている点

  • operator«のオーバーロードができる

16進数で表示するには?

std::cout << "x = 0x" << std::hex << x << std::endl;      
td::cout << std::showbase<< std::hex << x << std::endl;      
std::cout.setf( std::ios::hex, std::ios::basefield );  // 16進数で出力させる
std::cout.setf( std::ios::showbase );  // 0xを付ける

floatの精度を指定する

cout.precision(精度);

operator«のオーバーロード

friendを使う

friend ostream& operator<<(std::ostream& _s, const Object3D& _in) {
    return _s<<typeid(_in).name();
}

charを16進数として表示するには?

cout.setf(ios::hex,ios::basefield);//16進数で表示
cout.setf(ios::showbase);//0xをつける
cout<<"スタートID"<<static_cast<int>(char変数)<<endl;

これだと、3バイト分何桁か余計なのが表示されるのが嫌。setw()は浮動小数点にしか通じないようだ。
こういう方法もある。

2進数表記する

#include <iostream>
#include <bitset>
using namespace std;
char c=101;
bitset<8> bits(c);//8ビットのビット列を作り、値としてcを入れる。
cout<<"2進数表記"<<bits<<endl;

書式設定をクリアする

unsetf

小数のe表記をやめたい

cout<<fixed<<0.000001<<endl;

printf

サポートサイト Wikidot.com printf