C++:打印数组时意外获取十六进制

标签 c++ hex cout

我正在使用 new 声明一个数组

int *a = NULL;
a = new int[10];

a[0] = 23;
a[1] = 43;
a[2] = 45;
a[3] = 76;
a[4] = 34;
a[5] = 85;
a[6] = 34;
a[7] = 97;
a[8] = 45;
a[9] = 22;

PrintElements(a, 10);

void PrintElements(int * array, int size){
    for (int i=0; i<size; i++) {
        cout << endl << array[i];
    }
}

现在,当我打印这些值时,我得到了这些值

17
2b
2d
4c
22
55
22
61
2d
16

有人可以告诉我我做错了什么......? 另一方面,当我不使用新数组并在没有它的情况下初始化数组时,一切正常。

最佳答案

你可能在某个时候向 cout 写入了一个 std::hex;这将一直有效,直到被覆盖。

关于C++:打印数组时意外获取十六进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3381595/

相关文章:

c++ - Gstreamer 源代码不起作用

string - 将十六进制转换为字母

java - Java 十六进制数中的问题

c++ - 从 std::ostream 重载 << 运算符时,为什么编译器会给出 "too many parameters for this operator function"错误?

c++ - 我的cout怎么了?

c++ - 未找到 regdeletekey 返回文件

c++ - C++ 有哪些比较晦涩的部分?

c++ - 如何计算减少的值何时达到某个点?

c - 在 C 字符串中存储十六进制值?

C++ 错误 : no match for 'operator<<'