Explanations
The function cin.fail()
returns true if the failure bit is set in the cin
stream.
The expression cin >>
will ignore spaces then attempt to read in the data type. If the read fails, the cin
status will be set to failure
. There is an overload that allows the return value of operator>>
to be converted from failure to bool
.
The expression cin.get() != '\n'
, reads in a character from cin
, then tests that character for newline ('\n'
). Note: the character read from cin
is deleted and not available for other purposes.
The expressions are used for different purposes.
Usages
cin.fail()
— to test the failure state ofcin
, after something
has been read fromcin
.cin >>
— reads in an object fromcin
, using formatted input
(e.g. converting textual number to internal format). May be
overloaded for other objects.cin.get() != '\n'
— Used when searching for a newline. The
character read is trashed after the comparison.
5
solved What is the difference between these cin functions?