【问题标题】:I'm trying to input a simple math expression in the form 1 + 2我正在尝试以 1 + 2 的形式输入一个简单的数学表达式
【发布时间】:2019-07-03 18:43:11
【问题描述】:

我需要设置一个简单的计算器来输入和提供输出。我知道一旦我保存了变量,我就可以使用条件使其工作,但我无法以我需要的方式保存变量。

#include <iostream>
using   namespace std;

int main(){
    int n1;
    int n2;
    char opr;
    cout<<"Enter an expression to evaluate: ";
    cin>> n1>> opr >>n2;  //my input is <1 + 2>

    cout<<n1<<endl;
    cout<<opr<<endl;
    cout<<n2<<endl;

    return 0;
}

我希望输出是: 1 + 2

但结果如下: 1 0 6422368

【问题讨论】:

  • 您的cin 需要int,但您输入了&lt;。它无法提取任何内容,并且您的所有变量都被统一化(它们可以具有任何随机值)。
  • 您的输入真的是&lt;1 + 2&gt; 还是1 + 2?有很大的不同。
  • 我会一直这么说。用户不会在控制台程序中输入整数。他们键入要被解释为整数的字符和字符串。假设用户将键入任何内容并相应地对其进行解析并检查错误。
  • @selbie 很好的建议,但超出了大多数新手。
  • 使用调试器查看发生了什么。您可能会看到opr 中有一个空格。

标签: c++ math operators


【解决方案1】:

您的输入似乎是 &lt;1 + 2&gt;。如果您的输入是 1 + 2,您已经编写了可以工作的代码,但它不是,所以您需要更改代码。

这是一种适用于给定输入的方法。

int n1, n2;
char opr, lt, gt;
cout<<"Enter an expression to evaluate: ";
cin >> lt >> n1 >> opr >> n2 >> gt;  //my input is <1 + 2>

ltgt 变量仅用于读取输入中的 &lt;&gt; 字符。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-23
    • 2018-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-28
    • 1970-01-01
    • 2016-04-07
    相关资源
    最近更新 更多