Now that you see from the postings above that C# requires direct method calls instead of cin >> x style programming, you may wonder why nobody has ported this C++ chestnut to C#. One part of the answer is that differences between overloading in C++ and C# would make porting that particular C++ idiom difficult.
For instance, in C++ the declaration gets to designate which arguments are "by ref", whereas in C# both the caller and the callee must agree on "by ref". This makes it difficult to do
cin >> x
because in C# this type of declaration
-> public static istream operator>>(istream i, ref int x)
would not be legal/logical -- and is not allowed in C#. If it were allowed, the use of it would have to appear in C# as something like this
cin >> (ref x);
Even if it were legal, it stops mattering at that point, because nobody would want to use it.
You are entering a new world on your switch from C++/Templates/STL to C#. You will probably feel a little more at home when generics (like templates with more type safety) arrive, but even so, only the concepts and broader outlines of C++ syntax (and not as much of the API specifics) will come with you on your move from C++ to C#.
By the way, you may be interested to take a look at managed C++. If you create a C++ project in VS7 and set "Use Managed Extensions" to "yes" (under configuration properties->General), you will be able to make CLR assemblies in C++ *and* use iostream.