iomanipによる出力の書式設定
iomanipヘッダーを使って、幅、精度、配置、基数を制御します。
「iomanipによる出力の書式設定」はCoddyKit上の無料C++ Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはC++ Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 C++ Academyコースには全4レッスンが含まれています。
iomanip ヘッダー
<iomanip> ヘッダーはマニピュレーターを提供します。これは cout にストリーム出力して、書式設定の状態を変更する特殊なオブジェクトです。
std::setw: フィールド幅
std::setw(n) は、次のフィールドだけの最小幅を設定します。値が短い場合は埋められます。
#include <iomanip>
std::cout << std::setw(10) << "Name" << std::setw(5) << "Age\n";
std::cout << std::setw(10) << "Ada" << std::setw(5) << 36 << "\n";std::setfill: 埋め文字
デフォルトでは、setw はスペースで埋めます。setfill で埋め文字を変更できます。この設定は変更するまで維持されます。
std::cout << std::setfill('0') << std::setw(4) << 42;
// 0042std::left と std::right
setw で指定したフィールド内のテキストを揃えます。デフォルトは右揃えです。
std::cout << std::left << std::setw(10) << "Ada" << "|\n";
std::cout << std::right << std::setw(10) << "Ada" << "|\n";std::setprecision
有効桁数を制御します。std::fixed と組み合わせると、小数点以下の桁数を制御できます。
double pi = 3.14159265;
std::cout << std::setprecision(4) << pi << "\n"; // 3.142
std::cout << std::fixed << std::setprecision(2) << pi; // 3.14Fixed Scientific Hexfloat
std::fixed、std::scientific、std::hexfloat を使って、数値の書式を切り替えます。
double x = 12345.6789;
std::cout << std::scientific << x << "\n"; // 1.234568e+04
std::cout << std::fixed << x << "\n"; // 12345.678900整数の基数: hex oct dec
異なる基数で整数を出力します。std::showbase を使うと接頭辞(0x、0)が追加されます。
int n = 255;
std::cout << std::hex << n << "\n"; // ff
std::cout << std::oct << n << "\n"; // 377
std::cout << std::dec << n << "\n"; // 255 (default)std::boolalpha
真偽値を 1/0 ではなく単語として出力します。
std::cout << std::boolalpha << true << "\n"; // true
std::cout << std::noboolalpha << true << "\n"; // 1マニピュレーターの設定は維持される
ほとんどのマニピュレーターは、変更されるまで効果が維持されます。setw は例外で、次のフィールドにだけ適用されます。
安全な文字列のための std::quoted
<iomanip> にある std::quoted は、文字列を二重引用符で囲み、内部に含まれる引用符をエスケープします。ログ行に最適です。
std::string name = "Ada \"Countess\"";
std::cout << std::quoted(name);
// "Ada \"Countess\""C++20 std::format
現代的な C++20 では、ほとんどの iomanip の用途を、型安全な printf 形式の API である std::format に置き換えられます。
#include <format>
std::cout << std::format("{:>10} | {:.2f}\n", "pi", 3.14159);確認問題
出力するフィールドごとに再適用する必要があるマニピュレーターはどれですか。
まとめ
<iomanip> には、幅、精度、配置、基数、引用符を扱うマニピュレーターがあります。setw はフィールドごとに適用され、それ以外は設定が維持されます。C++20 では、より明確な書式設定のために std::format を優先してください。
AI チューターと学ぶ C++ — 無料
ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。
- コース
- 51
- レッスン
- 203
よくある質問
「iomanipによる出力の書式設定」レッスンは無料ですか?
はい。「iomanipによる出力の書式設定」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、C++ Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 C++ Academyコースには全4レッスンが含まれています。
「iomanipによる出力の書式設定」で何を学びますか?
iomanipヘッダーを使って、幅、精度、配置、基数を制御します。 ブラウザで直接実行するハンズオンコードでC++ Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
C++ Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのC++ Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「iomanipによる出力の書式設定」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このC++ Academyレッスンでコードを書いて実行できますか?
はい。すべてのC++ Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- std::cinとstd::coutの適切な使い方
- iomanipによる出力の書式設定
- getlineで安全に入力を読み取る
- std::cerrとstd::clogを扱う