Bur*_*ard 4 c++ string complex-numbers
如何轻松地将包含两个由逗号分隔的浮动的字符串转换为复数?
例如:
string s = "123,5.3";//input
complex<float> c(123,5.3);//output/what I need
Run Code Online (Sandbox Code Playgroud)
有没有比分割字符串更简单/更快的方法,读取两个值并返回complex<float>?
只需添加括号,默认operator>>将为您执行:
#include <iostream>
#include <string>
#include <complex>
#include <sstream>
int main()
{
std::string s = "123,5.3";//input
std::istringstream is('(' + s + ')');
std::complex<float> c;
is >> c;
std::cout << "the number is " << c << "\n";
}
Run Code Online (Sandbox Code Playgroud)
PS.有趣的是每个人的风格略有不同,虽然答案是一样的.如果您已准备好处理异常,也可以使用boost来完成:
std::complex<float> c = boost::lexical_cast<std::complex<float> >('('+s+')');
Run Code Online (Sandbox Code Playgroud)