In Visual Studio 2010 Pro, I get a compile error stating "expected an identifier" on the max()
portion of the command. It seems that in the windows.h
header file there is a max(a,b)
identifier and the compiler wants to use that.
I tried to use #include <limits>
as well, but that did not fix the problem.
Is there anyway to get around this?
'\n' sets the delimiter, i.e. the character after which cin stops ignoring. numeric_limits<streamsize>::max() sets the maximum number of characters to ignore. Since this is the upper limit on the size of a stream, you are effectively telling cin that there is no limit to the number of characters to ignore.
The cin. clear() clears the error flag on cin (so that future I/O operations will work correctly), and then cin. ignore(10000, '\n') skips to the next newline (to ignore anything else on the same line as the non-number so that it does not cause another parse failure).
The <windows.h>
header has had the min()
and max()
macros since time immemorial, and they frequently cause problems with C++. Fortunately, you can disable them by adding #define NOMINMAX
before including <windows.h>
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With