工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> C言語

C++ストリームをマスター:cout、cin、cerr、clogの実践ガイド

C++におけるストリームとは

C++は、データをバイトシーケンスとして転送するストリームクラスのファミリを通じて入出力を抽象化します。これらのストリームは、言語におけるすべてのI/O操作の基盤です。

ストリームは2つのカテゴリに分類されます:

ストリームの種類

このチュートリアルでは以下を扱います:

ストリームの動作原理

典型的なC++ストリーム操作の流れ:

  1. 適切なタイプのストリームオブジェクトをインスタンス化
  2. get/putポインタを使用してストリームをデバイスやファイルに関連付け
  3. 抽出(>>)または挿入(<<)演算子でI/Oを実行

ストリーム関数の概要

streambufヘッダはファイルバッファを管理するいくつかのクラスを提供します:

クラス説明
filebuf読み書き用ファイルバッファを管理。open()とclose()を提供
fstreambaseifstream、fstream、ofstreamの基底 – 共通ファイルストリーム操作
ifstreamデータ読み込み用の入力ファイルストリーム
ofstreamデータ書き込み用の出力ファイルストリーム
fstream入出力両用の結合ストリーム

C++ I/O用ヘッダファイル

これらのオブジェクトはすべてiostreamで定義されており、このヘッダを省略するとコンパイルエラーになります。

std::cout

coutオブジェクトは標準出力ストリーム(通常はコンソール)に書き込みます。挿入演算子(<<)と共に使用します。

例

#include <iostream>
using namespace std;
int main() {
    char welcome[] = "Welcome to Guru99";
    cout << welcome << endl;
    return 0;
}

出力:

coutによる出力例

コードウォークスルー:

  1. iostreamをインクルードしてcoutにアクセス
  2. プレフィックスを避けるためstd名前空間を使用
  3. メッセージを保持する文字配列を定義
  4. endlで改行を挿入しながらメッセージを出力
  5. 成功を示す0を返却

std::cin

cinオブジェクトは標準入力ストリーム(通常はキーボード)から読み取ります。抽出演算子(>>)と組み合わせます。

例

#include <iostream>
using namespace std;
int main() {
    int number;
    cout << "Enter a number:";
    cin >> number;
    cout << "\nYou entered: " << number;
    return 0;
}

出力:

cinによる入力・出力例

コード解説:

  1. iostreamをインクルードしてcinとcoutにアクセス
  2. std名前空間を使用
  3. 整数変数を宣言
  4. ユーザーにプロンプト
  5. >>で入力を読み取り
  6. 入力値をエコー出力
  7. 成功時に0を返却

std::cerr

cerrストリームは非バッファードであるため、エラーメッセージを即座に出力します。即座に表示しなければならない重大なエラーに使用します。

例

#include <iostream>
using namespace std;
int main() {
    cerr << "An Error occurred!";
    return 0;
}

出力:

cerrによる即時エラー出力

解説:

  1. iostreamをインクルードしてcerrにアクセス
  2. std名前空間を使用
  3. エラーメッセージを即座に出力
  4. 0を返却

std::clog

cerrとは異なり、clogはバッファードであり、バッファがフラッシュされるまでメッセージを蓄積します。遅延可能なログ記録に有用です。

例

#include <iostream>
using namespace std;
int main() {
    clog << "An Error occurred!";
    return 0;
}

出力:

clogによるバッファード出力

解説:

  1. iostreamをインクルードしてclogにアクセス
  2. std名前空間を使用
  3. バッファードエラーメッセージを書き込み
  4. 0を返却

ストリームオブジェクトによるエラー処理

ストリームはブールコンテキストで評価して有効性をチェックできます。また、メンバ関数で詳細なステータスチェックが可能です:

例 – ファイルオープンの検証:

ifstream file("myfile.txt");
if (!file) {
    cout << "File NOT opened!" << endl;
}

例 – ユーザー入力の検証:

int p;
if (cin >> p) {
    cout << "Enter valid number" << endl;
}

まとめ

  • C++ではI/Oはバイトシーケンスを転送するストリームを通じて実行される
  • 入力ストリームはデバイスからメモリへ、出力ストリームはメモリからデバイスへデータを移動
  • cin(istream)はキーボード入力を読み取り
  • cout(ostream)はコンソールに書き込み
  • cerr(ostream)は即座にエラーメッセージを表示
  • clog(ostream)はエラー出力をバッファし後でフラッシュ
  • バッファードストリームはgood()、bad()、fail()、eof()でチェック可能

C言語

  1. C# 入出力の基礎:ユーザー入力と出力の基本をマスター
  2. C++入出力完全ガイド:cin/coutの基本から複数入力まで
  3. C言語入出力(I/O)マスター:scanf()とprintf()徹底解説
  4. C++ switch文をマスター:構文、使い方、実践例
  5. C++例外処理をマスター:try、catch、throwの実践例
  6. C++動的配列の確保をマスター:コード例付き実践ガイド
  7. C++構造体を実例で徹底解説
  8. C言語の入出力マスター:標準関数とファイル操作
  9. C++の核心構文とオブジェクト指向の基礎を理解する
  10. Dラッチ完全マスター:設計、動作原理、フリップフロップとの違い
  11. Java入出力をマスター:表示、読み取り、データフォーマット