我正在使用c++制作计算器,但编译器给出了一个错误

I was making a calculator using c++ but the compiler is giving an error

本文关键字:错误 一个 编译器 c++ 计算器      更新时间:2023-10-16

我是c++的新手。最近我完成了所有的循环(在我的在线教程中给出)。

我决定创建一个计算器,它将首先从用户获取一个函数

  1. a (for sum)
  2. S(用于减法)
  3. M(用于乘法)
我相信你会帮助我的。但是编译器给出了一些错误。(DEV-c + +)。我遇到了大麻烦。

//The program begins here
#include <iostream>
#include <define.h>    //This is my own header file
#include <string>
using namespace std;
int main(){

int x;

int y;

char z;

char a,s,m,d,c;
    do 
    {cout<<"Enter the function below :"<<NEWLINE;
    cout<<"Following are the possible functions:  "<<"1."<<"a-add"<<NEWLINE<<"2."<<"s-subtract"<<NEWLINE<<"3. "<<"m-multiply"<<NEWLINE<<"4. "<<"d-divide"<<NEWLINE;
cin>>z;
while (z!=c);   
    }
    if (z=a){    /*here is the error place. it tells to give a "while" `before '(' token. (but I dont know why)...`*/
      cout<<"Please enter your first digit to be added"<<NEWLINE;
      cin>>x;
        cout<<"Your first digit is "<<x<<NEWLINE<<"Please enter 2nd digit to be added";
        cin>>y;
        cout<<"You entered "<<y<<"."<<"The sum of"<<x<<" and "<<y<<" is "<<x+y;
    else if (z=s){        /*Here It tells me that "else without a previous if".             //BUT I have given IF before this.*/
        cout<<"Please enter the first digit "<<NEWLINE;
        cin>>x;
        cout<<"You entered "<<x<<" Please enter 2nd digit: "<<NEWLINE;
        cin>>y;
        cout<<"Your equation is"<<x<<"-"<<y<<"="<<x-y;
    }
    else if(z=m){
        cout<<"Enter the first digit"<<NEWLINE;
        cin>>x;
        cout<<"Your 1st digit is"<<x<<". Enter the 2nd digit"<<NEWLINE;
        cin>>y;
        cout<<"Your equation is"<<x<<"+"<<y<<"="<<x+y;
    }
    }
    cin.ignore();
    return 0;
}

你的while放错地方了。这是编译器告诉你的:

test.cpp|23 col 8| error: expected ‘while’ before ‘(’ token
||      if (z = a) { // here is the error place. it tells to give a "while" before '(' token. (but I dont know why)...

所以,修复它:

do {
    cout << "Enter the function below :" << NEWLINE;
    cout << "Following are the possible functions:  "
         << "1."
         << "a-add" << NEWLINE << "2."
         << "s-subtract" << NEWLINE << "3. "
         << "m-multiply" << NEWLINE << "4. "
         << "d-divide" << NEWLINE;
    cin >> z;
} while (z != c);

更多问题:

if (z = a) { // here is the error place. it tells to give a "while" before '(' token. (but I dont know why)...

应为z==a


    else if (z = s)

应该是} else if (z==s)


更多的事情是错误的。a, s, m, c从未初始化…你是说'a', 's'等吗?

我最好的选择,它至少可以编译:

#include <iostream>
//#include <define.h> //This is my own header file
#include <string>
using namespace std;
int main() {
    char z = ' ';
    do {
        std::cout << "Enter the function below :"
            << "n";
        std::cout << "Following are the possible functions:  "
            "1. a-addn"
            "2. s-subtractn"
            "3. m-multiplyn"
            "4. d-dividen";
        std::cin >> z;
        if (z == 'a') { // here is the error place. it tells to give a "while" before '(' token. (but I dont know why)...
            std::cout << "Please enter your first digit to be added"
                << "n";
            int x, y;
            std::cin >> x;
            std::cout << "Your first digit is " << x << "n"
                << "Please enter 2nd digit to be added";
            std::cin >> y;
            std::cout << "You entered " << y << "."
                << "The sum of" << x << " and " << y << " is " << x + y;
        } else if (z == 's') { /*Here It tells me that "else without a previous if".             //BUT I have given IF before
                               this.*/
            std::cout << "Please enter the first digit "
                << "n";
            int x, y;
            std::cin >> x;
            std::cout << "You entered " << x << " Please enter 2nd digit: "
                << "n";
            std::cin >> y;
            std::cout << "Your equation is" << x << "-" << y << "=" << x - y;
        } else if (z == 'm') {
            std::cout << "Enter the first digit"
                << "n";
            int x, y;
            std::cin >> x;
            std::cout << "Your 1st digit is" << x << ". Enter the 2nd digit"
                << "n";
            std::cin >> y;
            std::cout << "Your equation is" << x << "+" << y << "=" << x + y;
        }
    } while (z != 'c');
    std::cin.ignore();
    return 0;
}
相关文章: