Я не понимаю две последние команды unsetf для hex и oct
Если флаги hex
и oct
не были установлены ранее, да сброса dec
достаточно:
std::cin.unsetf(std::ios::dec);
int n;
std::cin >> n; // 0x1a
std::cout << n; // 26
( демо )
Но , если эти флаги были установлены ранее, они могут повлиять на анализ ваших шестнадцатеричных чисел:
std::cin.unsetf(std::ios::dec);
int n;
std::cin >> n; // 0x1a
std::cout << n; // 0
( демо )
Итак, если вы хотите, чтобы std::cin
проанализировал ваш номер, угадав их базу, вам следует unsetf
hex
, dec
и oct
.