tie() に関する iostream の動作を理解しようとしています。私が見つけたものから、以下のコードは画面に何も出力しないはずです。
cin.tie(NULL);
int i;
cout << "TEST";
cin >> i;
while (true);
代わりに、次のように動作する必要があります
cin.tie(NULL);
int i;
cout << "TEST";
read(0, &i, sizeof(int));
while (true);
つまり、ストリームがアンタイされているにもかかわらず、cin 入力が呼び出されると cout バッファーがフラッシュされます。このコードを g++ 4.8.0 および 4.6.3 でコンパイルしようとしました。また、呼び出しを試みcin.tie()
た後cin.tie(NULL)
、正しく NULL を返すため、ストリームを関連付けないでください。
私が見逃しているのは、tie() にもっとありますか?