わびさびサンプルソース

WindowsやHTML5などのプログラムのサンプルコードやフリーソフトを提供します。

標準出力の出力先を変更する(wcout版)

標準出力の出力は通常ディスプレイへ出力されますが、std::wcout.rdbuf()関数で、 rdbufを設定する事で、ファイルへ出力させる事も可能です。

#include <tchar.h>
#include <iostream>
#include <fstream>



int _tmain
(
	  int argc
	, _TCHAR* argv[]
)
{
	std::wofstream ofstr( L".¥¥test.txt" );
	std::wstreambuf* strbuf;

	// 変更前の値を取得
	strbuf = std::wcout.rdbuf( ofstr.rdbuf() );

	// ロケールのセット(日本語が出力できるようにする)
    std::locale locale( "" );
	std::wcout.imbue( locale );

	// 標準出力へ出力(ファイルへ出力されます)
	std::wcout << L"標準出力がファイルになった?" << std::endl;

	// 元に戻す
	std::wcout.rdbuf( strbuf );

	// 正常終了
	return( 0 );
}

実行結果

標準出力がファイルになった?






わびさびサンプルソース

WindowsやHTML5などのプログラムのサンプルコードやフリーソフトを提供します。