所以我正在读一个包含以下内容的输入文件:
lololololololol
我需要一次使用二进制一个字节来读取它,以备稍后使用。为此,我正在get()
阅读它,然后将其存储到char中。除了读入的最后一个字符外,它似乎工作正常。正在读入的向量包含:
lololololololol
�
我不太确定最后一个值是什么,但它完全不符合我的最终输出。所以我的问题是,是否有理由get()
从我的文本文档中读取不存在的值或字节?还是正在读一些我不知道的东西?
代码:
while(istr.good()) {
temp = istr.get();
input.push_back(temp);
}
它正在读取EOF
(文件结尾)字符。您需要在阅读后进行检查,以避免将其插入向量中:
while(temp = istr.get(), istr.good()) // comma operator
input.push_back(temp);
或者,您可以使用第二std::istream_base::get
重载并将其istr
隐式转换为bool
:
while(istr.get(temp))
input.push_back(temp);
或者尝试更高级的方法。operator>>
并且std::getline
对于这种输入也可以正常工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句