为什么这种方法不对?一定要用判断字符转化为十进制再转化为八进制的那种方法吗?

图片说明

/*给定n个十六进制正整数,输出它们对应的八进制数。*/
#include <iostream>
#include <cmath>
using namespace std;

int main()
{
    int n;
    cin >> hex >> n;
    cout << oct <<n<< endl;
    return 0;
}
思路应该没问题
但是可能应该这么写(具体要看到你的题目)
#include <iostream>
#include <cmath>
using namespace std;

int main()
{
    int n;
        int x;
    cin >> n;
        for (int i = 0; i < n; i++)
        {
        cin >> hex >> x;
    cout << oct <<x<< endl;
        }
    return 0;
}

我看题目是“给定n个十六进制正整数”,你的写法只能输入一个值吧?