解析复数
Parsing a complex number
我正在尝试以字符或字符串的形式从用户那里获取复数输入,例如:
88.90-55.16i 或 -3.67+5i
然后将其转换为浮点数,保持与上述相同的格式。不是 (x,y)。
char user[100];
vector < float > V;
for (int y = 0; y < 5; y++)
{
cout << "Enter a complex number:" << endl;
cin >> user;
float newfloat = atof(user);
cout << newfloat << endl;
}
目前无法转换整数。上述输入示例中只有 88 或 -3。
我以前从未使用过 C++,但我确信 float 不符合您的期望。虚数不是浮点数的子集,所以你不能那样做。
我想一种可能的解决方案是编写您自己的假想 class,或者如果有的话,使用内置的。
在你自定义的虚数里也写一个fromString()/toString()class.
您需要将复数的实部和虚部存储在单独的 float
变量中,这些变量可能会也可能不会使用 struct
/class
或 std::pair<>
。输入应该是这样的:
std::cout << "Enter a complex number:\n";
float real, imaginary;
char i;
if (std::cin >> real >> imaginary >> i && i == 'i')
{
...do something with real & imaginary...
}
else
{
std::cerr << "unable to parse input as a complex number\n";
exit(1);
}
(FWIW,这很明显与 this earlier question 有关 - 要么是同一个人使用新用户名,要么是某人在做同样的任务。我在我的回答中提供了一个使用 std::complex<>
的示例程序那里。)
Float 无法存储该类型的数字。浮点数旨在保存单个浮点数,即 10.3 或 5.2。不是 1+2i。那是一个二维量。
我建议您使用 complex<float>
模板作为您的数据类型或创建您自己的 class。在此处查找更多信息:https://msdn.microsoft.com/en-us/library/5de6f0bw.aspx 关于 complex<float>
它带有将字符串转换为复杂类型的内置工具。
我正在尝试以字符或字符串的形式从用户那里获取复数输入,例如: 88.90-55.16i 或 -3.67+5i
然后将其转换为浮点数,保持与上述相同的格式。不是 (x,y)。
char user[100];
vector < float > V;
for (int y = 0; y < 5; y++)
{
cout << "Enter a complex number:" << endl;
cin >> user;
float newfloat = atof(user);
cout << newfloat << endl;
}
目前无法转换整数。上述输入示例中只有 88 或 -3。
我以前从未使用过 C++,但我确信 float 不符合您的期望。虚数不是浮点数的子集,所以你不能那样做。
我想一种可能的解决方案是编写您自己的假想 class,或者如果有的话,使用内置的。
在你自定义的虚数里也写一个fromString()/toString()class.
您需要将复数的实部和虚部存储在单独的 float
变量中,这些变量可能会也可能不会使用 struct
/class
或 std::pair<>
。输入应该是这样的:
std::cout << "Enter a complex number:\n";
float real, imaginary;
char i;
if (std::cin >> real >> imaginary >> i && i == 'i')
{
...do something with real & imaginary...
}
else
{
std::cerr << "unable to parse input as a complex number\n";
exit(1);
}
(FWIW,这很明显与 this earlier question 有关 - 要么是同一个人使用新用户名,要么是某人在做同样的任务。我在我的回答中提供了一个使用 std::complex<>
的示例程序那里。)
Float 无法存储该类型的数字。浮点数旨在保存单个浮点数,即 10.3 或 5.2。不是 1+2i。那是一个二维量。
我建议您使用 complex<float>
模板作为您的数据类型或创建您自己的 class。在此处查找更多信息:https://msdn.microsoft.com/en-us/library/5de6f0bw.aspx 关于 complex<float>
它带有将字符串转换为复杂类型的内置工具。