0

私はC++でハフマンコードを書いていますが、ファイルからデータを取得しているところ、問題が発生しました。最初の1行には、文字列として使用したい文字列がありますが、これは難しいことではありませんでした。しかし、それから私は次のx行の数字を取り、それらをunsigned charsとして取り、それらを使用できるようにする必要があります。

このフォームをファイルから抽出したい場合は、何を入力しますか?

ILaILbILrILcLd(文字列として取得したい)

3(3はその下の#の数です)

89(これらの3つを署名されていない文字として取り出したい

207

88

4

1 に答える 1

1

ナイキが私たちに言うように、それをしてください:

// read the line:
std::string line1; 
std::getline(infile, line1);

// read the int:
int num;
infile >> num;
// probably want to sanity check `num` here

// define a place to store the chars
std::vector<char> chars;

// read the chars.
for (i=0; i<num; i++) {
    unsigned int temp;
    infile >> temp;
    chars.push_back(static_cast<unsigned char>(temp));
}

この状況ではおそらくあまり成果が得られませんが、の定義の直後に次のcharsように追加できます。メモリのchars.reserve(num);再割り当てを回避するため。vector

于 2012-12-13T13:28:56.950 に答える