-
Error c2678
Ok, so I have researched and researched and have been through my code dozens of times, and I can not seem to figure out why I keep getting:
error C2678: binary '>>' : no operator found which takes a left-hand operand of type 'std::istream'
here's a snippet of my code:
Code:
#include "ItemType.h"
void ItemType::addListing(ofstream& output) const
{
output.open("prgmlisting.dat");
if(!output.is_open())
cout << "sorry cannot open file!" << endl;
else
{
cout << "please enter name of channel: ";
cin >> channel; //This is where I keep getting the error
output << channel << endl;
}
}
Also note that I have included #include <string> and #include <iostream> in ItemType.h
-
Re: Error c2678
You didn't show the definition of the variable causing the error, channel.
-
Re: Error c2678
If channel is not a built-in type (bool, char, int, double, etc.) not a library class (such as std::string) that has overloaded the operator >>, then you need to explicitly overload operator>> to be able to use it like you did.