How Input/Output can fail No input left - end of file std::cin.eof() will return true Wrong data - eg. "abc" is not an int std::cin.bad() will return true Hardware or system failure std::cin.fail() will return true Call std::cin.clear() to recover The stream can then be used Throws an exception if it fails