我的计算器程序C++出错了

Ben*_*n_W 0 c++ calculator syntax-error

我试图用C++为我的第一个项目制作一个计算器,但是我收到了一个错误.

这是我的代码:

#include <iostream>
#include <cmath>

using namespace std;

int a;
int b;
int sum;
int opp;
int yn;


int main()
{

    cout << "Enter your first value" << endl;
    cin >> a;

    cout << "Type the number that corrosponds to your opperation \n 1.add \n 2.subtract \n 3.mutipliy \n 4.divide" << endl;
    cin >> opp;

    cout << "Choose your last value" << endl;
    cin >> b;

    return 0;

}

int action()
{

    switch(opp)
    {
    case 1:
        sum = a + b;
        cout << "Your answer is " << sum << endl;
        break;

    case 2:
        sum = a - b;
        cout << "Your answer is " << sum << endl;
        break;

    case 3:
        sum = a * b;
        cout << "Your answer is " << sum << endl;
        break;

    case 4:
        sum = a / b;
        cout << "Your answer is " << sum << endl;
        break;

    case >> 5:
        cout << "Type the number that corrosponds to your opperation \n 1.add \n 2.subtract \n 3.mutipliy \n 4.divide"
    }

    cout << "Would you like to use another oppperation? \n Type the number that relates to the answer you want to choose \n 1.Yes \n 2.No" << endl;
    cin >> yn;

    if (yn = 1)
    {

    cout << "what would you like your nxt opperation to be? \n 1.add \n 2.subtract \n 3.mutiply \n 4.divide" << endl;
        cin >> opp;

        return 0;
    }
}
Run Code Online (Sandbox Code Playgroud)

我知道这不是最好的书面代码,但我更专注于让它发挥作用.

如果它有助于我得到的错误代码是:

1>------ Build started: Project: ConsoleApplication1, Configuration: Debug Win32 ------
1>  calculator.cpp
1>c:\users\"my acount"\documents\visual studio 2013\projects\consoleapplication1\consoleapplication1\calculator.cpp(12): error C2365: 'yn' : redefinition; previous definition was 'function'
1>          c:\program files (x86)\microsoft visual studio 12.0\vc\include\math.h(1002) : see declaration of 'yn'
1>c:\users\"my account"\documents\visual studio 2013\projects\consoleapplication1\consoleapplication1\calculator.cpp(56): error C2059: syntax error : '>>'
1>c:\users\"my account"\documents\visual studio 2013\projects\consoleapplication1\consoleapplication1\calculator.cpp(61): error C2679: binary '>>' : no operator found which takes a right-hand operand of type 'double (__cdecl *)(int,double)' (or there is no acceptable conversion)
1>          c:\program files (x86)\microsoft visual studio 12.0\vc\include\istream(485): could be 'std::basic_istream<char,std::char_traits<char>> &std::basic_istream<char,std::char_traits<char>>::operator >>(std::basic_streambuf<char,std::char_traits<char>> *)'
1>          c:\program files (x86)\microsoft visual studio 12.0\vc\include\istream(466): or       'std::basic_istream<char,std::char_traits<char>> &std::basic_istream<char,std::char_traits<char>>::operator >>(void *&)'
1>          c:\program files (x86)\microsoft visual studio 12.0\vc\include\istream(448): or       'std::basic_istream<char,std::char_traits<char>> &std::basic_istream<char,std::char_traits<char>>::operator >>(long double &)'
1>          c:\program files (x86)\microsoft visual studio 12.0\vc\include\istream(430): or       'std::basic_istream<char,std::char_traits<char>> &std::basic_istream<char,std::char_traits<char>>::operator >>(double &)'
1>          c:\program files (x86)\microsoft visual studio 12.0\vc\include\istream(411): or       'std::basic_istream<char,std::char_traits<char>> &std::basic_istream<char,std::char_traits<char>>::operator >>(float &)'
1>          c:\program files (x86)\microsoft visual studio 12.0\vc\include\istream(392): or       'std::basic_istream<char,std::char_traits<char>> &std::basic_istream<char,std::char_traits<char>>::operator >>(unsigned __int64 &)'
1>          c:\program files (x86)\microsoft visual studio 12.0\vc\include\istream(373): or       'std::basic_istream<char,std::char_traits<char>> &std::basic_istream<char,std::char_traits<char>>::operator >>(__int64 &)'
1>          c:\program files (x86)\microsoft visual studio 12.0\vc\include\istream(353): or       'std::basic_istream<char,std::char_traits<char>> &std::basic_istream<char,std::char_traits<char>>::operator >>(unsigned long &)'
1>          c:\program files (x86)\microsoft visual studio 12.0\vc\include\istream(335): or       'std::basic_istream<char,std::char_traits<char>> &std::basic_istream<char,std::char_traits<char>>::operator >>(long &)'
1>          c:\program files (x86)\microsoft visual studio 12.0\vc\include\istream(317): or       'std::basic_istream<char,std::char_traits<char>> &std::basic_istream<char,std::char_traits<char>>::operator >>(unsigned int &)'
1>          c:\program files (x86)\microsoft visual studio 12.0\vc\include\istream(291): or       'std::basic_istream<char,std::char_traits<char>> &std::basic_istream<char,std::char_traits<char>>::operator >>(int &)'
1>          c:\program files (x86)\microsoft visual studio 12.0\vc\include\istream(272): or       'std::basic_istream<char,std::char_traits<char>> &std::basic_istream<char,std::char_traits<char>>::operator >>(unsigned short &)'
1>          c:\program files (x86)\microsoft visual studio 12.0\vc\include\istream(237): or       'std::basic_istream<char,std::char_traits<char>> &std::basic_istream<char,std::char_traits<char>>::operator >>(short &)'
1>          c:\program files (x86)\microsoft visual studio 12.0\vc\include\istream(218): or       'std::basic_istream<char,std::char_traits<char>> &std::basic_istream<char,std::char_traits<char>>::operator >>(std::_Bool &)'
1>          c:\program files (x86)\microsoft visual studio 12.0\vc\include\istream(211): or       'std::basic_istream<char,std::char_traits<char>> &std::basic_istream<char,std::char_traits<char>>::operator >>(std::ios_base &(__cdecl *)(std::ios_base &))'
1>          c:\program files (x86)\microsoft visual studio 12.0\vc\include\istream(204): or       'std::basic_istream<char,std::char_traits<char>> &std::basic_istream<char,std::char_traits<char>>::operator >>(std::basic_ios<char,std::char_traits<char>> &(__cdecl *)(std::basic_ios<char,std::char_traits<char>> &))'
1>          c:\program files (x86)\microsoft visual studio 12.0\vc\include\istream(198): or       'std::basic_istream<char,std::char_traits<char>> &std::basic_istream<char,std::char_traits<char>>::operator >>(std::basic_istream<char,std::char_traits<char>> &(__cdecl *)(std::basic_istream<char,std::char_traits<char>> &))'
1>          c:\program files (x86)\microsoft visual studio 12.0\vc\include\istream(1103): or       'std::basic_istream<char,std::char_traits<char>> &std::operator >><char,std::char_traits<char>,double(int,double)>(std::basic_istream<char,std::char_traits<char>> &&,_Ty (__cdecl &))'
1>          with
1>          [
1>              _Ty=double (int,double)
1>          ]
1>          c:\program files (x86)\microsoft visual studio 12.0\vc\include\istream(1093): or       'std::basic_istream<char,std::char_traits<char>> &std::operator >><std::char_traits<char>>(std::basic_istream<char,std::char_traits<char>> &,unsigned char &)'
1>          c:\program files (x86)\microsoft visual studio 12.0\vc\include\istream(1086): or       'std::basic_istream<char,std::char_traits<char>> &std::operator >><std::char_traits<char>>(std::basic_istream<char,std::char_traits<char>> &,unsigned char *)'
1>          c:\program files (x86)\microsoft visual studio 12.0\vc\include\istream(1079): or       'std::basic_istream<char,std::char_traits<char>> &std::operator >><std::char_traits<char>>(std::basic_istream<char,std::char_traits<char>> &,signed char &)'
1>          c:\program files (x86)\microsoft visual studio 12.0\vc\include\istream(1072): or       'std::basic_istream<char,std::char_traits<char>> &std::operator >><std::char_traits<char>>(std::basic_istream<char,std::char_traits<char>> &,signed char *)'
1>          while trying to match the argument list '(std::istream, double (__cdecl *)(int,double))'
1>c:\users\"my account"\documents\visual studio 2013\projects\consoleapplication1\consoleapplication1\calculator.cpp(63): error C2659: '=' : function as left operand
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Run Code Online (Sandbox Code Playgroud)

如果您可以尝试解释答案,那么我可以从中学习,因为这是我的第一个项目.

rak*_*rul 10

  1. int yn;

在这里你重新声明yn因为math.h已经有一个名为的变量yn:

extern double yn _PARAMS((int, double));
Run Code Online (Sandbox Code Playgroud)

所以重命名yn.

  1. case >> 5: 是错的,改成它 case 5:

  2. if (yn = 1)将永远是true,作为它的赋值操作而不是比较运算符(==).将其改写为if (yn == 1).