如何从文件C ++中收集不同的变量类型

时间:2012-12-13 12:58:06

标签: c++ char type-conversion

我正在用C ++编写一个霍夫曼代码,我现在从文件中获取数据并遇到了麻烦。第一行我有一串字符,我想把它作为一个字符串,我一点都不觉得难以做到。但是接下来我必须采用下一个x行的数字并将它们作为无符号字符,以便我可以使用它们。

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

ILaILbILrILcLd(想作为字符串)

3(3是低于它的#s数)

89(想把这3个作为无符号字符取出

207

88

1 个答案:

答案 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内存。