ostringstream - Convert array of uint8_t to string in C++ -
i have array of type uint8_t. want create string concatenates each element of array. here attempt using ostringstream, string seems empty afterward.
std::string key = ""; std::ostringstream convert; (int = 0; < key_size_; a++) { convert << key_arr[a] key.append(convert.str()); } cout << key << endl;
try this:
std::ostringstream convert; (int = 0; < key_size_; a++) { convert << (int)key[a]; } std::string key_string = convert.str(); std::cout << key_string << std::endl;
the ostringstream
class string builder. can append values it, , when you're done can call it's .str()
method std::string
contains put it.
you need cast uint8_t
values int
before add them ostringstream
because if don't treat them chars. on other hand, if represent chars, need remove (int)
cast see actual characters.
edit: if array contains 0x1f 0x1f 0x1f , want string 1f1f1f, can use std::uppercase
, std::hex
manipulators, this:
std::ostringstream convert; (int = 0; < key_size_; a++) { convert << std::uppercase << std::hex << (int)key[a]; }
if want go decimal , lowercase, need use std::nouppercase
, std::dec
.
Comments
Post a Comment