我正在用C ++编写一个霍夫曼代码,我现在从文件中获取数据并遇到了麻烦。第一行我有一串字符,我想把它作为一个字符串,我一点都不觉得难以做到。但是接下来我必须采用下一个x行的数字并将它们作为无符号字符,以便我可以使用它们。
如果我想将此表单提取为文件,我会输入什么内容?
ILaILbILrILcLd(想作为字符串)
3(3是低于它的#s数)
89(想把这3个作为无符号字符取出
207
88
答案 0 :(得分: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
内存。