complex_io.cpp
来自「《无线通信系统仿真——c++使用模型》这本书的源代码」· C++ 代码 · 共 67 行
CPP
67 行
//
// file = complex_io.cpp
//
#include <ostream>
#include <iostream>
#include "complex_io.h"
using namespace std;
ostream& operator<<( ostream& s, const std::complex<float>& z)
{
//s << "(" << z.real() << "," << z.imag() << ")";
s << z.real() << "," << z.imag();
return s;
}
ostream& operator<<( ostream& s, const std::complex<double>& z)
{
//s << "(" << z.real() << "," << z.imag() << ")";
s << z.real() << "," << z.imag();
return s;
}
istream& operator>>( istream& s, std::complex<float>& z)
{
char lpar, rpar, comma;
float _r, _i;
for(;;)
{
if( (!(s >> lpar >> _r >> comma >> _i >> rpar))
|| (lpar != '(') || (rpar != ')')
|| (comma != ',') )
{
// bad stream input
s.clear();
cout << "format for complex value is '( double, double)'\n"
<< " -- try again" << endl;
continue;
}
break;
}
z = std::complex<float>(_r, _i);
return s;
}
istream& operator>>( istream& s, std::complex<double>& z)
{
char lpar, rpar, comma;
double _r, _i;
for(;;)
{
if( (!(s >> lpar >> _r >> comma >> _i >> rpar))
|| (lpar != '(') || (rpar != ')')
|| (comma != ',') )
{
// bad stream input
s.clear();
cout << "format for complex value is '( double, double)'\n"
<< " -- try again" << endl;
continue;
}
break;
}
z = std::complex<double>(_r, _i);
return s;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?