-
sscanf vs istringstream
What is the istringstream equivalent of sscanf and checking if 4 fields have been read in?
Code:
if (sscanf(s, "%d %s %c %s", &id, variable, &type, value) == 4)
versus
Code:
std::istringstream mystream(s);
// scan 4 fields
mystream >> id;
mystream >> variable;
mystream >> type;
mystream >> value;
if (mystream ????)
-
If a stringstream fails to read something, it sets a bad bid, so just check the stream, ie:
if (mystream) // OK
if (!mystream) // Not OK
if (mystream >> id) // OK
if (!(mystream >> id)) // Not OK