Почему мой вывод не корректен при utlizing cout<<hex
В этом коде вводится шестнадцатеричное число, например 1a, за которым следует восьмеричное число, например 777. Однако, когда вводятся входные данные, выходы не таковы, как ожидалось от преобразования между базами.
#include <iostream> using namespace std; int main() { int hexin, octalin; cout << ("Please enter two space-separated positive integer numeric values. \nPleasue ensure the first is in hexadecimal and the second is in octal.\n"); cin >> hexin >> octalin; cout << hex << hexin << " hexadecimal = " << oct << hexin << " octal = " << dec << hexin << " decimal\n" << octalin << " octal = " <<hex << octalin << " hexadecimal = " <<dec << octalin << " decimal"; return 0; }
Вход: 1a 777
Выход:
1 шестнадцатеричный = 1 восьмеричный = 1 десятичный
0 восьмеричный = 0 шестнадцатеричный = 0 десятичный
Может быть, я каким-то образом неправильно использую выходные форматеры?
Что я уже пробовал:
Я пробовал использовать шестнадцатеричное и восьмеричное число в качестве строки и целого числа. Я также пробовал использовать std::cout с std::hex, oct и т. д. Ни то, ни другое не дало точных результатов.