標準入力を標準出力に流すだけのプログラムを↓のように書きました。

#include <iostream>
main(){ std::cin.tie(0); std::cout << std::cin.rdbuf(); }

cygwinのgcc3.2で実行すると、1文字でも入力すると無限ループに陥ってしまいます。
なにかまちがってるんでしょうか?