在 c++ 中将字符串(包含字符和浮点数)转换为双精度

Convert a string (containing characters and float) to double in c++

本文关键字:浮点数 转换 双精度 字符 包含 c++ 字符串      更新时间:2023-10-16

我有一个分数的赋值,其中用户将输入作为a/b发送,但a和b是简单的整数,而不是负数或浮点数,使用if else语句可以轻松提取它们

但是现在我正在制作一个复数(计算器类型)程序。我实际上是采用 a + bi 形式的字符串(其中 a 和 b 可以是整数或浮点数或两者兼而有之)。我很难在不使用大量额外行的情况下进行操作。


编辑:我的问题实际上是如何从 + bi 中提取"真实和虚构部分"。

例如,输入:3.45 - 9.87 i 并得到 float Real = 3.45 和 float Imaginary = 9.87 输出

我正在使用c ++并使用Visual Studio

iostreams 库提供了很好的重载运算符,您可以大致像这样读取表达式的组件:

string s = "3.45 - 9.87 i";
istringstream ist( s );
double re, im;
char op, ki;
ist >> re >> op >> im >> ki;
// op == '-'      
// ki == 'i'
complex<double> a( re, op == '-' ? -im : im );

从那里也应该很容易支持更灵活的表达式。