4

私はこれを試しています:

std::wstringstream wstrStream;
std::wifstream wifStream(str.c_str());
wifStream >> wstrStream;

しかし、私はこのコンパイルエラーを受け取りました:

     error C2664: 'std::basic_istream<_Elem,_Traits>::_Myt &std::basic_istream<_Elem,_Traits>::operator >>
(std::basic_istream<_Elem,_Traits>::_Myt &(__cdecl *)
(std::basic_istream<_Elem,_Traits>::_Myt &))' : cannot convert parameter 1 from
'std::wstringstream' to 'std::basic_istream<_Elem,_Traits>::_Myt &(__cdecl *)
(std::basic_istream<_Elem,_Traits>::_Myt &)'
            with
            [
                _Elem=wchar_t,
                _Traits=std::char_traits<wchar_t>
            ]
            and
            [
                _Elem=wchar_t,
                _Traits=std::char_traits<wchar_t>
            ]

演算子>>がwchar_tに実装されていないことを理解しています。

std::wifstreamへのドキュメントと参照はほとんど見つかりませんでした。どのように使用しますか?

4

2 に答える 2

6

演算子>>は、2つのストリームに対して定義されていません。ファイルから空白で区切られた文字列を読み取る場合は、次を使用します。

std::wstring s;
wifStream >> s;

ファイル全体を文字列ストリームにコピーする場合は、次を使用します。

wstrStream << wifStream.rdbuf();
于 2010-11-09T14:33:18.103 に答える
2

ここでwstringstreamを使用する必要はありません。wifstreamは内部でwstringstreamです。std::wstringに直接抽出する必要があります。

于 2010-11-09T14:29:59.380 に答える