I've been working on a C++ project in visual studio 2012 console mode and I keep getting this strange persistent error with the cin function.
Under the >> I get a red line and the program tells me no operator matches these operands.
I have initialized all the array elements in a separate method.
Here's a snippet example (The actual code contains many more variables):
for (int i = 0; i < 14; i++)
{
    cout << "For taxi: " << i+1 << "Please input the taxi rank they are currently parked at, if at all ('Train Station', 'South Walls' or 'Chell Road')" << endl;
    cin >> allTaxiDetails[i].taxiRank;
}
allTaxiDetails is an array, of data type "taxiDetails" which is this structure: 
struct taxiDetails { 
    string taxiDriverSurname; 
    int taxiID; 
    int taxiCoordinates; 
    int numberOfSeats; 
    bool taxiContainsCustomerYesNo; 
    bool WheelChairAccessibleVehicle; 
    string taxiRank; 
    fareDetails fareDetailsForTaxi; 
    bool taxiAvaliable; 
};
Issue is saying that string doesn't have the operator>> method, but it does...
#include <string> at the top of that file?getline(std::cin, allTaxiDetails[I].taxiRank, '\n');.operator>> for your struct.It seems you are trying to read an object of type std::string for which you somehow obtained the class definition (e.g. by including <iostream>) but you didn't get all the necessary operations! Make sure you are including <string>:
#include <string>
// ...
It is quite common that some headers provide definitions of some other classes but actually don't use the entire header to get the definitions. Since std::string is in some places needed to declare IOStreams it is fairly likely that it will be defined but probably not by including its full header.
I believe forget #include < string > this critical header is the error source. It happened to me as a beginner of C++.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With