operator<<,>>(std::complex)
来自cppreference.com
| 在标头 <complex> 定义
|
||
| |
(1) | |
| |
(2) | |
1) 以
(real,imaginary) 格式写入复数到 os。2) 从
is 读取复数。受支持格式为
real(real)(real, imaginary)
其中 real 与 imaginary 的输入必须可转换为 T。
is.setstate(ios_base::failbit)。异常
流错误时可能抛 std::ios_base::failure。
参数
| os | - | 字符输出流 |
| is | - | 字符输入流 |
| x | - | 要被插入或提取的复数 |
返回值
1)
os2)
is注解
1) 因为逗号可能被当前本地环境用作小数点,故输出可能有歧义。这可用强制显示小数点的 std::showpoint 解决。
2) 输入以简单格式化的释出进行。空白符的跳过对于它们每一项都相同。
可能的实现
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();
}
|
示例
运行此代码
#include <complex>
#include <iostream>
int main()
{
std::cout << std::complex<double> {3.14, 2.71} << '\n';
}
可能的输出:
(3.14,2.71)