我有二进制文件作为输入,我需要按位简单读取它。如果我想按字符读取文件,可以使用以下命令:
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);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句