使用 .get() 一次读取一个字节
Reading in one byte at a time with .get()
所以我正在读取一个包含以下内容的输入文件:
lololololololol
我需要一次使用二进制一个字节来读取它,以便我稍后要做的事情。为此,我使用get()
读取它,然后将其存储到字符中。它似乎工作正常,除了它读入的最后一个字符。它正在读取的向量包含:
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
也可以很好地用于此类输入。
相关文章:
- 程序错误地读取了二进制文件的一个字节
- 解压缩串联的 zlib 流而不读取下一个字节
- 一次读取一个字节的 unicode
- 如何从 int 一次写入一个字节的文件?C++
- 如何将一个字节数组正确地恢复为C 中的对象
- 我正在尝试修改一个字节数组并通过 JNI 将其从 c++ 发送到 java
- 快速简单的方法,以C++为单位一次读取一个字节的 stdin
- 如何编写一个字节表示为c 中的文件
- 两个 4 位位字段加起来不等于一个字节的大小 - 如何修复?
- GCC 编译器一个字节中有多少位
- 处理Huffman压缩/减压中的最后一个字节
- 如何在-120到120之间更改int到char(或其他简单保存为一个字节的简单方法)
- Winapi WriteFile 函数写入一个字节
- C RLE BMP压缩跳过了最后一个字节
- mbtowc在osx上总是返回一个字节
- C 将一个字节与字母进行比较
- 有可能在c++中创建一个占用不到一个字节内存的类型吗
- Qt串行端口有时会丢失最后一个字节
- (C++)ReadProcessMemory-读取一个字节时出现问题
- 将一个字节数组从Unity C#传递到C++库方法中