如何检查C语言中Programmer提供的两种不同格式的输入

是否有人知道我如何检查用户输入是否为给定格式之一。

我希望用户以a + ib或a + bi或a或bi的形式输入复数(他/她应该只在Console中写一次。),我们应该检测格式。

可以通过将字符串作为输入来完成,但这会使代码更加复杂。我想要一个有趣的,更简单的方法。

给出了我认为应该可以工作的示例代码,但仅在第一种情况下有效。

#include<iostream>
using namespace std;

int main()
{
    cout << "Enter The Complex Number : ";
    double real=0,img=0;
    char sign,iota='i';

    if(cin >> real >> sign >> img >> iota || cin >> real >> sign >> iota >> img || cin >> real || cin >> img >> iota)
    {
        cout << real << " " << img << endl;
    }
    else {
        cout << "Failed !\n";
    }
    return 0;
}
评论