传送门

先用map建立映射关系,然后每次读进来一个串(cin读到空格就停了),对应出相应的数字,就把a和b的值计算出来了。具体的就来看我的代码吧

#include<iostream>
#include<string>
#include<map>
using namespace std;
map<string,int> m;
int main()
{
    m["zero"] = 0;
    m["one"] = 1;
    m["two"] = 2;
    m["three"] = 3;
    m["four"] = 4;
    m["five"] = 5;
    m["six"] = 6;
    m["seven"] = 7;
    m["eight"] = 8;
    m["nine"] = 9;
    m["ten"] = 10;
    string in;
    while(true)
    {
        int a = 0,b = 0;
        while(cin >> in)
        {
            if(in == "+")
                break;
            a = a * 10 + m[in];
        }
        while(cin >> in)
        {
            if(in == "=")
                break;
            b = b * 10 + m[in];
        }
        if(a == 0 && b == 0)
            break;
        cout<< a+b <<endl;
    }
    return 0;
}