0

我正在用 C++ 编写一个霍夫曼代码,现在我正在从文件中获取数据并且遇到了障碍。第一行我有一个字符串,我想把它当作一个字符串,我一点也不难做到。但是然后我必须取下 x 行数并将它们作为无符号字符,以便我可以使用它们。

如果我想将此表单提取为文件,我会输入什么?

ILaILbILrILcLd (想作为一个字符串)

3(3是它下面的#s的数量)

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);以避免重新分配vectors 内存。

于 2012-12-13T13:28:56.950 回答