如何调试我的C ++代码?

时间:2015-05-23 19:30:29

标签: c++

启动此代码时,结果不好。我想制作一个简单的计算器,因为我是C ++中的新手。

#include <iostream>
using namespace std;

int main() {
    setlocale(LC_ALL, "Lithuanian");
    float pasirinkimas, a, b, atsakymas;
    cout << "Pasirinkite veiksmą : ";
    cin >> pasirinkimas;
    if(pasirinkimas = '+') {
      cout << "Ąveskite pirmą skaičių : ";
      cin >> a;
      cout << "Ąveskite antrą skaičių : ";
      cin >> b;
      atsakymas = a + b;
      cout << "Atsakymas yra : " << atsakymas << endl;
      cout << "Ačiū, kad naudojates Neimanto Jociaus kurtu skaičiuotuvu" << endl;
 }
    else if(pasirinkimas = '-') {
      cout << "Ąveskite pirmą skaičių : ";
      cin >> a;
      cout << "Ąveskite antrą skaičių : ";
      cin >> b;
      atsakymas = a - b;
      cout << "Atsakymas yra : " << atsakymas << endl;
      cout << "Ačiū, kad naudojates Neimanto Jociaus kurtu skaičiuotuvu" << endl;
 }
    else if(pasirinkimas = '*') {
      cout << "Ąveskite pirmą skaičių : ";
      cin >> a;
      cout << "Ąveskite antrą skaičių : ";
      cin >> b;
      atsakymas = a * b;
      cout << "Atsakymas yra : " << atsakymas << endl;
      cout << "Ačiū, kad naudojates Neimanto Jociaus kurtu skaičiuotuvu" << endl;
 }
    else if(pasirinkimas = '/') {
      cout << "Ąveskite pirmą skaičių : ";
      cin >> a;
      cout << "Ąveskite antrą skaičių : ";
      cin >> b;
      atsakymas = a / b;
      cout << "Atsakymas yra : " << atsakymas << endl;
      cout << "Ačiū, kad naudojates Neimanto Jociaus kurtu skaičiuotuvu" << endl;
 }
    else {
      cout << "Ąvestas veiksmas neegzistuoja!" << endl;
      exit(0);
 }
    system("PAUSE");
}

2 个答案:

答案 0 :(得分:4)

在C ++中,运算符==表示赋值。要测试相等性,请使用if(pasirinkimas == '+') ,例如

if

否则,您的第一个true将评估为char,因为您指定的pasirinkimas已转换为非零。

其次,您的floatchar,并且您尝试与char进行比较(实际上,如果您尝试在cin >> pasirinkimas;中输入pasirinkimas,则读取本身将会失败行char,因此-Wall -Wextra -pedantic -Weffc++将保持未初始化状态。也可以使用<connectionStrings> <add name="SchoolContext" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=ContosoUniversity1;Integrated Security=SSPI;" providerName="System.Data.SqlClient"/> </connectionStrings> 作为前者的类型。

我强烈建议您打开所有编译器警告。例如,在g ++ / clang ++中,您可以使用sbt stage打开它们。他们会帮助你诊断这些问题,否则一开始可能会被忽视。

答案 1 :(得分:0)

pasirinkimas的类型更改为char,它应该有效。