Just to be sure: 'cin' is a variable declared in the 'std' namespace and usually (or always, I don't really know but I don't think it's important) found in the iostream header file.
If I recall correctly, the specific use being given here is to check whether the input stream associated with this variable is good to go or not. In other words, that's the same as while (std::cin.good()). How is this possible? By means of an operator override. Something like:
I also think the condition is to exam the input is correct, but the while(std::cin) is in a main() funciton, there's no input operation except in the while, what's input does the while exam? the inside? how a a inside input stream go to while() ?