程序因二进制错误而停止

use*_*563 2 c++

我被要求为我的推荐课程创建一个汽油泵程序,我遇到了运行它的问题,目前这是编译器在尝试编译代码完整构建对话时输出的主要内容

1> m:\ visual studio 2010\projects\referral\referral\main.cpp(56):错误C2678:二进制'>>':找不到哪个运算符带有'std :: istream'类型的左操作数(或者没有可接受的转换)

#include <iostream>
#include <istream>
#include <ostream>
#include <fstream>
#include <ctime>
#include <cmath>
#include <string>
#include <Windows.h>

using namespace std;
int reciept();
int pump;
int petrol;

int main()
{
    bool exit = false;
    int code;
    string p1w ("Waiting");
    string p2w ("Waiting");
    string p3w ("Waiting");
    string p4w ("Waiting");
    string p1r ("Ready");
    string p2r ("Ready");
    string p3r ("Ready");
    string p4r ("Ready");

    if (GetAsyncKeyState(VK_ESCAPE))
    {
        exit = true;
    }

    cout << "***************************************************" << endl;
    cout << "*Liquid Gold v1.0.0 Last revised 18/07/13         *" << endl;
    cout << "*The process of processing transactions is simple,*" << endl;
    cout << "*activate a pump by entering its code shown below.*" << endl;
    cout << "*After pump operation is verified (generally 10   *" << endl;
    cout << "*seconds though this may vary) the attendant      *" << endl;
    cout << "* will be able to enter the amount of petrol to 3 *" << endl;
    cout << "*decimal places which will then be converted based*" << endl;
    cout << "*on a predetermined price (which can be altered in*" << endl;
    cout << "*price.txt) and once this process is complete a   *" << endl;
    cout << "*receipt will be created (you will need seperate  *" << endl;
    cout << "*software in order to print this recipt) and the  *" << endl;
    cout << "*transaction will be terminated.                  *" << endl;
    cout << "*© Simple Software Solutions 2013                 *" << endl;
    cout << "***************************************************" << endl << endl;
    system("Pause");

    while (exit == false)
    {

        cout << "       Pump (1) - " << p1w << "        Pump (2) - " << p2w << endl << endl << endl;
        cout << "       Pump (3) - " << p3w << "        Pump (4) - " << p4w << endl << endl << endl;

        cin >> "Please enter a pump code:" >> code;

        if (code == 1)
        {
            swap (p1w, p1r);
            pump = 1;
            cin >> "Please enter the amount of petrol deposited" >> petrol;
            break;
        } 

        else if (code == 2)
        {
            swap (p2w, p2r);
            pump = 2;
            cin >> "Please enter the amount of petrol deposited" >> petrol;
            break;
        }

        else if (code == 3)
        {
            swap (p3w, p3r);
            pump = 3;
            cin >> "Please enter the amount of petrol deposited" >> petrol;
            break;
        }

        else if (code == 4)
        {
            swap (p4w, p4r);
            pump = 4;
            cin >> "Please enter the amount of petrol deposited" >> petrol;
            break;
        }
        else
        {
            cout << "Invalid pump code entered";

        }
        reciept();
        {
             ofstream transactions;
             transactions.open ("reciept.txt");
             transactions << "****************************************************/n";
             transactions << "                        SALE                        /n";
             transactions << "****************************************************/n /n";
        }
    }

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

我环顾四周,我能找到的唯一解决方案就是包括我已经完成的并且我看不到任何其他解决方案.

任何比我更敏锐的人都要仔细看看并告诉我哪里出错了?

此外,我知道我的代码是一个低效的混乱,我为此道歉.

Yan*_*ang 14

更改

cin >> "Please enter a pump code:" >> code;
Run Code Online (Sandbox Code Playgroud)

cout << "Please enter a pump code: ";
cin >> code;
Run Code Online (Sandbox Code Playgroud)

您需要更改cin >> "string"代码中的所有内容.这并不意味着提示用户输入.相反,你实际上是在尝试写入字符串文字.