The standard stream objects support all built-in types as well as several classes of the Standard Library, e.g., std::string. If you're using complex arithmetic, you'd be pleased to hear that C++ streams also support objects of type complex:
#include
#include
using namespace std;
int main()
{
complex num(0.5, 0.0); // create a complex number
cout << "complex value is: " << num << endl; // display it
cout << "enter a new complex value: ";
cin >> num; // read a complex number from stdin
cout << "value entered is: " << num << endl;
}