Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/145.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++;将字节值作为int添加到CString 让我们先说我用C++有0个XP。_C++_Int_Byte_Bytearray_Cstring - Fatal编程技术网

C++;将字节值作为int添加到CString 让我们先说我用C++有0个XP。

C++;将字节值作为int添加到CString 让我们先说我用C++有0个XP。,c++,int,byte,bytearray,cstring,C++,Int,Byte,Bytearray,Cstring,我有一个充满数据的字节数组 例如: byte 0: 1 byte 1: 75 byte 2: 125 byte 3: 66 byte 4: 114 byte 5: 97 byte 6: 109 我在C++中有一个cStk,它应该得到所有字节。但是字节0-2应该是int,字节3-6应该是ASCII字符 当我读取字节并将其放入CString时,将显示以下内容: “K}Bram” 只有“Bram”部分是正确的。 输出应为: "175125Bram" 我在字节数组的索引上有一个开关,所以我可以控制字

我有一个充满数据的字节数组

例如:

byte 0: 1
byte 1: 75
byte 2: 125
byte 3: 66
byte 4: 114
byte 5: 97
byte 6: 109
<>我在C++中有一个cStk,它应该得到所有字节。但是字节0-2应该是int,字节3-6应该是ASCII字符

当我读取字节并将其放入CString时,将显示以下内容:

“K}Bram”

只有“Bram”部分是正确的。 输出应为:

"175125Bram"
我在字节数组的索引上有一个开关,所以我可以控制字节。 对于字节0-2,我使用以下代码:

receiveStr += "" + (int)buffer[i]);
if ((buffer[i] >= 0x20 && buffer[i] <= 0x7E) || (buffer[i] == '\r') || (buffer[i] == '\n') || (buffer[i] == '\t'))
{
    receiveStr += buffer[i];
}
else
{
    // Display the invalid character placeholder (square)
    receiveStr += (char)0x7F;
}
对于字节3-6,我使用以下代码:

receiveStr += "" + (int)buffer[i]);
if ((buffer[i] >= 0x20 && buffer[i] <= 0x7E) || (buffer[i] == '\r') || (buffer[i] == '\n') || (buffer[i] == '\t'))
{
    receiveStr += buffer[i];
}
else
{
    // Display the invalid character placeholder (square)
    receiveStr += (char)0x7F;
}

if((buffer[i]>=0x20&&buffer[i]调用“convert to int”是什么意思?它在输出中应该是什么样子?
前3个字节已存储为int值,但其表示形式仍然是ascii字符

若它是像“175125Bram”那个样的字符串,那个么解决方案应该是这样的

#include <sstream>

stringstream ss;
ss << buffer[0] << buffer[1] << buffer[2];
receiveStr += ss.str();
#包括
细流ss;

ss有很多种方法..可能非标准函数itoa
是最有名的一种。/也可以是解决方案。它们需要固定大小的缓冲区,但在这种情况下,您可能知道合适的大小


<>在C++ 11中,函数有:将代码转换为<代码> STD::String :STW: .< /P>接收VST++SIS.Str.;不可能是+C++是不与SS相一致的。Strand()不能添加到CStringThen中,你可以把所有的字节加在SS上,然后返回字符串为:“K} Bram”。然后试试ss Um?您使用的是
char
?不是unicode吗?