簡體   English   中英

將 unsigned char* 數組轉換為 std::string

[英]Convert unsigned char* array to std::string

我正在使用此代碼將 unsigned char*(指向 256 個值的數組)轉換為 std::string:

int ClassA::Func(unsigned char *dataToSend, int sendLength)
{
    std::stringstream convertStream;
    std::string dataToSendStr = "";

    for(int i=0; i<=sendLength; i++) convertStream << dataToSend[i];    

    while(!convertStream.eof()) convertStream >> dataToSendStr;
    ...
}

但后來我有這種格式的 dataToSendStr :

dataToSendStr "" 
[0]           0x00 
[1]           0x00 
[2]           0x04 
[3]           0xC0

如果我現在使用這個值,我只會得到 "" 而不是重要的值 [0-3]!

-> 需要類似:dataToSendStr "000004C0"

謝謝你的幫助!

如果你想要(這是我認為基於需要的東西像問題的一部分)在dataToSend中的字符的十六進制表示,請使用 IO 操縱器std::hex

std::ostringstream convertStream;
convertStream << std::hex << std::setfill('0');

for (int i = 0; i < sendLength; i++)
{
    convertStream << std::setw(2) << static_cast<short>(dataToSend[i]);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM