如何通过cout打印未签名的char数组?

时间:2018-09-18 13:02:49

标签: c++ char

我有未签名的char数组。我想使用cout打印所有数组值。 我该怎么办?

rtc::ZeroOnFreeBuffer<unsigned char> charArray(key_len * 2 + salt_len * 2);

cout<< charArray; --> ?

2 个答案:

答案 0 :(得分:2)

for (auto&& c : charArray){
    cout << c;
}

可能是最简单的方法,假设您想要的是实际字符而不是数字(如果需要数字,则将auto&&替换为int),并且容器是可迭代的。

答案 1 :(得分:1)

假设您正在使用ZeroOnFreeBuffer from WebRTC,则可以使用for循环,并获取缓冲区的当前大小:

size_t bufSize = charArray.size()
for (int i = 0; i < bufSize; i++){
    cout << charArray[i];
}

无论如何,如何访问数据并对其进行迭代取决于ZeroOnFreeBuffer的性质。查看该对象的文档,它将为您提供访问数据的方法,查找缓冲区的大小,甚至可能如何获取诸如range-for循环之类的迭代器。