大抵の機械のシステムコールあるいはAPIにおいて、入出力はバイト単位で行われます。
従って、それらを利用する大抵のライブラリも、バイト単位の入出力を利用しています。
大抵の環境において、C++標準ライブラリはバイト単位の入出力を利用していますが、
codecvtというクラスによって、文字符号化の変換やwchar_tへの変換などを行っています。
C++のストリームは、このcodecvtを利用しています。
LILIN様は、まず、codecvtについて調べてみてはどうでしょうか?
あるいは、ロケールというキーワードも参考になるかもしれません。
「そのくらい知ってる!」という場合は、申し訳ありません、早とちりでした。