在 c++ 中将字符串(包含字符和浮点数)转换为双精度
Convert a string (containing characters and float) to double in c++
我有一个分数的赋值,其中用户将输入作为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 );
从那里也应该很容易支持更灵活的表达式。
相关文章:
- 将浮点数转换为无符号字符数组并打印出来
- 如何将浮点数转换为uint8_t?
- 为什么C++在将浮点数转换为字符时没有显示缩小转换错误?
- 将浮点数转换为字符串时如何加快此代码的速度?
- C/C++ - 将浮点数转换为字节数组,以便字节保持排序
- 精确且无公差地将浮点数转换为字符串
- 错误:请求从 std::chrono::time_point 浮点数转换为非标量类型长整型
- 将浮点数转换为 LPCTSTR 转换
- 无法在初始化时将浮点数转换为浮点数
- 将浮点数转换为 int,带和不带强制转换
- 将浮点数转换为 int,或将 int 强制转换为浮点数
- 将浮点数转换为字符串,并指定精度和十进制数字数?
- 将范围有限的浮点数转换为无符号的整数,以保持排序顺序和精度
- 如何将浮点数转换为保留位值的整数
- 将浮点数转换为 LPCWSTR
- 正在将浮点数转换为整数定义的行为
- 将浮点数转换为整数时如何舍入
- 将浮点数转换为浮点数*
- 无需任何库函数即可将浮点数转换为字符串的有效方法
- 将浮点数转换为 4 uint8_t