我有二进制文件作为输入,我需要逐位简单地读取它。如果我想按字符读取文件,我会使用这个:
ifstream f(inFile, ios::binary | ios::in);
char c;
while (f.get(c)) {
cout << c;
}
此代码的输出是字符序列,我需要的是 1 和 0 的序列。函数 get() 返回下一个字符,但我找不到任何返回下一位的 ifstream 函数。
有没有类似的实现方式?
感谢任何人的帮助。
最佳答案
你不能只是一点一点地读取文件。 所以,你应该使用这样的东西:
ifstream f(inFile, ios::binary | ios::in);
char c;
while (f.get(c))
{
for (int i = 7; i >= 0; i--) // or (int i = 0; i < 8; i++) if you want reverse bit order in bytes
cout << ((c >> i) & 1);
}
关于c++ - 按位读取文件 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22390641/