gpt4 book ai didi

c++ - 来自 char 数组的数据在迭代以逐字节显示时显示良好,但不是

转载 作者:行者123 更新时间:2023-11-30 04:27:07 24 4
gpt4 key购买 nike

我有一个我在 C++ 中不理解的问题: 作为方法调用的结果,我得到了一个 unsigned char* 。如果我迭代 char* 以显示数据,一切都很好,但是当我只是打印数据时,显示的值不同。

这是我的代码示例:

unsigned char returning[32];
for(int i=0;i<32;i++){
returning[i] = result[i];
std::cout << returning[i];//return the good values
}
std::cout << "\n";
std::cout << returning << "\n";
//the first one are the good values, and then there are wrong

有人可以向我解释这种奇怪的行为吗?

最佳答案

长话短说:

unsigned char returning[33];
returning[32] = '\0';

固定。

解释:

第一个循环将打印“returning”中的每个值。第二段代码只会返回值,直到它达到零值。然后它停止,因为 char 数组中的零被解释为行尾字符。

或者,如果“返回”中的任何地方都没有零,则第二段代码将继续写入随机值,直到它确实达到零。

关于c++ - 来自 char 数组的数据在迭代以逐字节显示时显示良好,但不是,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11142565/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com