画面への出力方法

C++でも、出力関数としてC言語のprintf()が使えますが今回は別の「cout」について詳しく調べます。

Helloを表示させるプログラム

最初に「Hello」を表示するプログラムを作成します。

#include <iostream>
int main()
{
    std::cout << "Hello\n";
}

実行結果.

Hello

出力に用いる「cout」で、「シーアウト」と読みます。 この前にある「std::」は、「cout」がどこにあるのかを示すものです。 「std::」を書くのが面倒な場合は、

#include <iostream>
using namespace std;
int main()
{
    cout << "Hello\n";
}

実行結果.

Hello

と、最初に「using namespace std;」を付けます。

数値を表示させる

int型のデータ「123」を表示させます。

#include <iostream>
using namespace std;
int main()
{
    int a = 123;
    cout << a;
}

実行結果.

123

printfでは、変換指定子などの記述が必要でしたが、coutはほとんどダイレクトに表示することができます。

数値と文字を表示させる。

文字列Helloとint型データ「123」をつなげて表示してさらに改行します。

#include <iostream>
using namespace std;
int main()
{
    int a = 123;
    cout << "Hello" << a << "\n";
}

実行結果.

Hello123

データが文字列から数値に変わるところで、「<<」を挟んで並べると表示できます。 最後の改行は「endl;」とされることも多いです。(「\n」と「endl;」は厳密には違うものですが、大体同じものです.)

書式設定

スペースを確保する

どのくらいのスペースを用意して表示するかは、「cout.width(n)」で設定します。 引数の「n」は設けるスペースの長さです。

#include <iostream>
using namespace std;
int main()
{
     cout.width(6);
     cout << "Hello";
}

実行結果.

 Hello

上の実行結果では「Hello」の前に一文字分のスペースがあきます。 これは「Hello」が5文字であり、widthで「6」となっているので、 その差である「1」文字分のスペースがあけられます。

表示桁数を指定する

桁数は「cout.precision(n)」で設定します。 引数の「n」は、小数点以下の桁数ではなく、「全体の桁数」になります。

#include <iostream>
using namespace std;
int main()
{
     double x = 1.234567;
     cout.precision(6);
     cout << x << endl;
}

実行結果.

1.23457

最初xは「1.234567」で、6桁分を取り出すと 「1.23456」ですが、上の実行結果では 「1.23457」となって、一見四捨五入された結果となっていることが見て取れます。 (注:詳細は不明ですがいろいろと実験してみると、単純な四捨五入ではないようです。)

指定の文字で桁を埋める

桁を埋める文字cを引数にし、cout.fill(c) の形で利用します。

#include <iostream>
using namespace std;
int main()
{
     int x = 123;
     cout.fill('0');
     cout.width(5);
     cout << x << endl;
}

実行結果.

00123

「123」は3桁分あり、「cout.width(5)」で5文字分のスペースを確保しています。 したがって、その差は「2」文字分あるわけですが、 上のプログラムでは、この部分を指定した文字「'0'」で埋めて表示しています。

16進数で表示する

hex の後に << と数値を続けます。

#include <iostream>
using namespace std;
int main()
{
     int x = 10;
     cout << hex << x << endl;
}

実行結果.

a