Cin has no operand >>

c++, cin, iostream

Solution

include `<string>`

On top of that I suggest you use getline instead as >> will stop at the first word in your input.

Example:

std::cin >> file; // User inputs C:\Users\Andrew Finnell\Documents\MyFile.txt

The result is "C:\Users\Andrew", quite unexpected considering that the data is not consumed until the newline and, the next std::string read will automatically be consumed and filled with "Finnell\Documnts\MyFile.txt"

std::getline(std::cin, file); 

This will consume all text until the newline.

Problem

I don't understand why this isn't working. For some reason I'm getting the error: `error C2678: binary '>>' : no operator found which takes a left-hand operand of type 'std::istream' (or there is no acceptable conversion)` I'm doing this in Visual Studio2010 C++ Express if that helps. Not sure why its handing me this error I've done other programs using `cin`... My Code: ``` #include <iostream> #include <iomanip> #include <fstream> using namespace std; int main(int argc, char* argv){ string file; if (argc > 1) { file = argv[1]; } else { cout << "Please Enter Your Filename: "; cin >> file; } } ```

Original source