为啥只有部分测试能过呢?这代码有什么逻辑上的漏洞吗?

图片说明图片说明

/*16.  从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
  注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。*/
#include <iostream>
using namespace std;
int main()
{
    int n;
    cin >> hex >> n;
    cout << dec << n;
    return 0;
}

看看题目怎么说,是不是不是输入一行输出一行,而是全部输入后再全部输出。
你可以把输入存入数组,统一输出

#include <iostream>
using namespace std;
int main()
{
    int n;
        int * arr = new int[n];
        for (int i = 0; i < n; i++)
    cin >> hex >> arr[i];
        for (int i = 0; i < n; i++)
    cout << dec << arr[i];
    return 0;
}