std::stringをstd::istreamへの変換は直接はできません。一度std::stringbufに変換してからstd::istremに変換します。
#include <stdio.h> #include <tchar.h> #include <iostream> #include <string> #include <sstream> /* stringをistreamに変換する */ int _tmain ( int argc , _TCHAR* argv[] ) { /* std::wcoutのロケールを設定 これを設定するだけで、std::wcoutで日本語が表示される ようになります。 */ std::wcout.imbue( std::locale( "", std::locale::ctype ) ); // 変換対象のテキスト std::string strText = "stringをistremに変換しました。"; // 一旦std::stringbufへ変換する(直接は変換できない為) std::stringbuf strBuf( strText.c_str() ); // istreamへ変換 std::istream istream( &strBuf ); /* istreamの内容を出力 */ while( !istream.eof() ) { std::cout << (char)istream.get(); } std::cout << std::endl; // 正常終了 return( 0 ); }
stringをistremに変換しました。