私が取り組んでいるプロジェクトでは、かなりの数の文字列操作を扱っています。文字列は、エンコーディング(1バイトまたは2バイトの場合があります)とともにバイナリファイルから読み取られます。基本的に、一貫性を保つために、文字列値をとしてvector<char>
読み取り、エンコーディングを読み取り、すべての文字列をに変換します。wstring
これはかなりうまく機能しますが、ファイル名自体は2バイト文字にすることができます。実際に入力ストリームを開く方法に完全に困惑しています。CIでは、関数の受け渡しを使用し_wfopen
ますが、ファイルから2バイト文字を読み取るために特別に設計されており、2バイトファイル名のファイルから1バイトを読み取るために設計されていないため、動作が異なるようです。wchar_t* path
wifstream
この問題の解決策は何ですか?
編集:ネットを検索すると、標準のC ++ではこれがまったくサポートされていないようです(たとえば、この説明を参照してください)。しかし、C++11が実際にこの分野で役立つ何かを追加するのかどうか疑問に思っています。