I had a look at this example, on the istream get
method to extract characters from a file stream.
Basically, I don't want my program to read a blank line, however it skips to the next line and gives an error that it can't read the next line - when really it shouldn't read the blank line.
Anyways, this is the tutorial I followed http://www.cplusplus.com/reference/istream/istream/get/ and this is my code
is.get(c)
if(c == '\0')
{
cout << "Blank line" << endl;
}
else
{
is.getline(...);
}
ignore whitespace...
is.getline(...);
You seem to be under the impression that a blank line is somehow represented by a null character. It is not. A blank line just consists of an end of line character (
'\n'
, possible originally of a line end sequence but on systems where it matters the line end sequence is transfirmed into a line end character in non-std::ios_base::binary
mode). To detect an empty line you'd read a line usingstd::getline()
or, possibly, usingstd::istream::getline()
and check if the result is empty.