これを試して:
std::ostringstream convert;
for (int a = 0; a < key_size_; a++) {
convert << (int)key[a];
}
std::string key_string = convert.str();
std::cout << key_string << std::endl;
ostringstream
クラスは文字列ビルダーのようなものです。それに値を追加できます。完了.str()
したら、そのメソッドを呼び出して、std::string
入力したすべてを含む を取得できます。
値をに追加する前にuint8_t
値をキャストする必要があります。そうしないと、値が文字として扱われるためです。一方、それらが文字を表している場合は、キャストを削除して実際の文字を表示する必要があります。int
ostringstream
(int)
編集: 配列に 0x1F 0x1F 0x1F が含まれていて、文字列を 1F1F1F にしたい場合は、次のようにマニピュレータstd::uppercase
とstd::hex
マニピュレータを使用できます。
std::ostringstream convert;
for (int a = 0; a < key_size_; a++) {
convert << std::uppercase << std::hex << (int)key[a];
}
10 進数と小文字に戻したい場合は、 and を使用する必要がありstd::nouppercase
ますstd::dec
。