Kann ich den Operator >> in C++ überzeugen, sowohl einen Hexadezimalwert als auch einen Dezimalwert zu lesen? Das folgende Programm zeigt, wie das Lesen von Hex falsch geht. Ich möchte, dass derselbe istringstream sowohl hexadezimal als auch dezimal lesen kann.Kann Operator >> ein int hex UND dezimal lesen?
#include <iostream>
#include <sstream>
int main(int argc, char** argv)
{
int result = 0;
// std::istringstream is("5"); // this works
std::istringstream is("0x5"); // this fails
while (is.good()) {
if (is.peek() != EOF)
is >> result;
else
break;
}
if (is.fail())
std::cout << "failed to read string" << std::endl;
else
std::cout << "successfully read string" << std::endl;
std::cout << "result: " << result << std::endl;
}
siehe Antwort von @ user10392. Sie müssen dies nicht manuell tun. –