operator<<,>>(std::complex)
De cppreference.com
Definido en el archivo de encabezado <complex>
|
||
template <class T, class CharT, class Traits> std::basic_ostream<CharT, Traits>& |
(1) | |
template <class T, class CharT, class Traits> std::basic_istream<CharT, Traits>& |
(2) | |
1) Escribe en os el número complejo en la forma (real,imaginary).
2) Lee un número complejo de is. Los formatos admitidos son
- real;
- (real);
- (real,imaginary).
Donde la entrada para real y imaginary debe ser convertible a T.
Si ocurre un error, llama a is.setstate(ios_base::failbit)Contenido |
[editar] Excepciones
Puede lanzar std::ios_base::failure cuando ocurren errores en el flujo.
[editar] Parámetros
os | - | Un flujo de salida de caracteres. |
is | - | Un flujo de entrada de caracteres. |
x | - | El número complejo que se va a insertar o extraer. |
[editar] Valor de retorno
1) os.
2) is.
[editar] Notas
1) Como la coma puede usarse en la configuración regional actual como separador decimal, la salida puede ser ambigua. Esto se puede resolver con std::showpoint que obliga a que el separador decimal sea visible.
2) La entrada se realiza como una serie de extracciones formateadas simples. La omisión de espacios en blanco es la misma para cada una de ellas.
[editar] Posible implementación
template<class T, class charT, class traits> basic_ostream<charT, traits>& operator<<(basic_ostream<charT, traits>& o, const complex<T>& x) { basic_ostringstream<charT, traits> s; s.flags(o.flags()); s.imbue(o.getloc()); s.precision(o.precision()); s << '(' << x.real() << "," << x.imag() << ')'; return o << s.str(); } |