このような動作が必要な場合は、自分で実装する必要があります。には組み込まれていませんcin.get
。
少なくとも理論的には、iostreams ライブラリは、この種のロジックをプラグインするのに合理的な場所を提供するため、ストリームの一部のように機能します。具体的には、iostream には関連付けられたlocale
があり、ロケールのcodecvt
ファセットを使用して、ファイル内の文字の外部表現から、プログラムで表示される文字の内部表現に変換します。この変換は、カスタムファセットで行うことができます。codecvt
codecvt
ただし、これにはかなり重大な問題があります。ファセットを記述するのはかなり苦痛です。読み取り後にジョブを実行するのではなく、この変換を codecvt ファセットとして記述しようとすると、コードの量が約 2 倍になり、関連する難易度が少なくとも 3 倍になります。
その投資は報われる可能性があります。変換をファセットにパッケージ化すると、codecvt
複数のプログラムへの統合がいくらか容易になります。この特定の変換を多くのプログラムで使用することを本当に期待している場合は、それをファセットにパッケージ化することが理にかなっている可能性があります。(私が推測するように) 他のプログラムでそれを使用する可能性が低い場合は、おそらく苦労する価値はありません。