最終更新日時: 2018年08月27日 14時02分57秒 (JST)
Mitsuru Kariya が更新

履歴 編集

variable
<iostream>

# std::clog

    namespace std {
      extern ostream clog;
      extern wostream wclog;
    }

## 概要

`clog`も`wclog`も、標準エラー出力に対する出力ストリームオブジェクトである。

すなわち、`std::basic_streambuf`から派生していて`<cstdio>`の`stderr`オブジェクトに結びつけられているストリームバッファに出力する。

`clog`は`character log`を意味する。また`wclog`は`wide character log`を意味する。[1]

## 例

    #include <iostream>
    #include <fstream>

    int main(int argc, char** argv)
    {
      char const* filename = argv[1];
      if (filename != nullptr)
      {
        std::clog << "ファイル名: " << filename << std::endl;
        std::fstream f(filename);
        std::cout << f.rdbuf() << std::endl;
      }
      else
      {
        std::clog << "ファイル名を指定してください" << std::endl;
        return 1;
      }
    }

### 出力

（コマンドラインを`_program_ foo.txt`としてプログラムを起動した場合）

    ファイル名: foo.txt
    （foo.txtの内容）

（コマンドラインを`_program_ foo.txt > /dev/null` (Unix系OS), `_program_ foo.txt > NUL` (Win32, DOS), `_program_ foo.txt > $null` (Win32 PowerShell)などとしてプログラムを起動した場合）

    ファイル名: foo.txt

## バージョン

### 言語

- C++98

## 出典

1. ^ Stroustrup: C++ Style and Technique FAQ(2018-08-21 17:01 JST 閲覧)

## 参照

- `cerr`