標準入出力
スポンサーリンク
標準入出力
次のプログラムは,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 |
スポンサーリンク