標準入出力
スポンサーリンク
標準入出力
次のプログラムは,2 整数の入力を受け付け,その和を出力するプログラムです。
#include <iostream>
int main()
{
int a, b;
std::cin >> a >> b;
std::cout << "a + b = " << a + b << std::endl;
}<b>[実行例]</b>
2 3
a + b = 5
std::cin (console in), std::cout (console out) は,それぞれ標準入力,標準出力に対応するオブジェクトです。
他に,標準エラー出力に対応する std::cerr, std::clog もあります。
| ストリーム | 説明 |
|---|---|
| cin | 標準入力 |
| cout | 標準出力 |
| cerr | 標準エラー出力 (バッファリングしない) |
| clog | 標準エラー出力 (バッファリングする) |
std::cin には >> 演算子を用います。
整数変数 a, b に対して std::cin >> a >> b と書けば,ホワイトスペースで区切られた 2 整数がそれぞれ a, b に格納されます。
std::cout, std::cerr, std::clog には << 演算子を用います。
1 行単位で入力を読み込むには,std::getline 関数を使います。
#include <iostream>
int main()
{
std::string buf;
std::getline(std::cin, buf);
}マニピュレータ
std::endl のようなマニピュレータ (manipulator, 操作子) を利用すると,入出力の書式や挙動が制御できます。
マニピュレータを利用するには,ヘッダ iomanip をインクルードします。
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int n = 123;
cout << setw(8) << n << endl;
cout << setw(8) << setfill('0') << n << endl;
cout << oct << n << endl;
cout << dec << n << endl;
cout << hex << n << endl;
}<b>[出力]</b>
123
00000123
173
123
7b
マニピュレータには次のようなものがあります。
| マニピュレータ | 説明 | 方向 |
|---|---|---|
| oct | 8 進数で入出力 | I/O |
| dec | 10 進数で入出力 | I/O |
| hex | 16 進数で入出力 | I/O |
| setbase(n) | n 進数で入出力 | I/O |
| setprecision(n) | 小数部を n 桁で出力 | O |
| setw(n) | 幅 n で出力 | O |
| setfill(c) | 余白を文字 c で埋める | O |
| endl | 改行文字を出力してバッファをフラッシュ | O |
| flush | バッファをフラッシュ | O |
スポンサーリンク