0

普段は C で作業していますが、現在はデータの圧縮と解凍に役立つ C++ のライブラリを使用しています。次に、圧縮データを char 配列に入れます。と同じように:

strg[40] = "400000000200000002000200000000ffffff80";

そこから、この配列で表されるバイナリ データを含む stringstream 変数を読み込む必要があります。誰かが私を助けてくれますか?

4

1 に答える 1

2

ケレックのコメントは的を射ています。

std::ostringstream ss;
const char *p = strg;
if (p) while (*p) {
    unsigned char x = hex2int(*p) << 4;
    if (*++p) x |= hex2int(*p++);
    ss << x;
}

ただし、これは入力ストリームのビッグ エンディアン表現を前提としています。入力ストリームが実際にリトル エンディアン表現のマルチバイト ワードを表している場合は、翻訳を変更する必要があります。

于 2012-06-18T23:06:09.823 に答える