需要一些c ++计算器的推荐

时间:2018-02-16 01:25:56

标签: c++

所以我的任务是创建一个c ++计算器,将用户输入作为一个字符串方程,如“-2.5 + 40 - 3 * 8/2”,它将从左到右读取(操作顺序没有遵循)和输出138作为答案。每个运算符和操作数之间必须有空格。

我做了一个计算器,但它只适用于单位正整数。这是代码。

A

所以输入“1 + 3”给出4但“12 + 3”产生5.我知道为什么它给5我只是不知道如何解决它。我不希望任何人只是简单地给我答案,但如果有人能指出我正确的方向?我想也许可以使用普通的cin而不是getline,因为它可以读取空间并存储它,但无法真正想到如何继续使用它。

与你的家伙指点,我做了另一个使用cin>>的计算器。但它只有在我给出恰当数量的运算符和操作数时才有效,这是不可能知道我是否接收随机用户方程式。任何想法?

    #include <iostream>
    #include <string>

    float calculator(string input){
    float result = 0;
    for(int i = 0; i < input.length(); i++){
    if(input[i] == '+'){
    result += (input[i-2]-'0') + (input[i+2]-'0');
    }
    return result;
    }

int main(){
string input = "";
cout << "enter string" << endl;
getline(cin, input);
cout << calculator(input) << endl;

1 个答案:

答案 0 :(得分:1)

尝试使用strtok解析数字,而不是通过char

读取字符串char

修改

可能sscanf是一种更好的方法