cin と wcin の同時使用
boostの正規表現ライブラリで遊ぼうと思ってstd::wstringを初めていじってみてたら、次のような現象を発見
#include <iostream> using namespace std; int main(){ string str; wstring wstr; cin >> str; wcin >> wstr; cout << str << endl; wcout << wstr << endl; return 0; }
みたいなコードを動かしてみると次みたいになる。
%./a.out hoge hoge %
cin >> strのみが実行されwcin >> wstrが実行されないのでwstrが空状態になっているようだ。
もちろんcinやwcinのみを連続して使ってもこうはならなくて、cinとwcinを同時に使用した場合にこうなるみたい。
cinとstdinならまだしもwcinまでこうなのか…使いにくい。まぁ当然といえば当然なんだけど。