Puis-je persuader l'opérateur >> en C++ de lire à la fois une valeur hexadécimale ET et une valeur décimale? Le programme suivant montre comment la lecture d'un hex se passe mal. Je voudrais que le même flux soit capable de lire à la fois hex et décimal.Est-ce que l'opérateur peut lire un int hex ET décimal?
#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;
}
Voir la réponse de @ user10392. Vous n'avez pas à le faire manuellement. –