【问题标题】:Read file by bits c++按位读取文件c ++
【发布时间】:2014-03-13 20:52:26
【问题描述】:

我有二进制文件作为输入,我需要按位简单地读取它。如果我想按字符读取文件,我会使用这个:

    ifstream f(inFile, ios::binary | ios::in);
    char c;
    while (f.get(c)) {
        cout << c;
    }

此代码的输出是字符序列,我需要的是 1 和 0 的序列。函数 get() 返回下一个字符,我找不到任何会返回下一位的 ifstream 函数。

有没有类似的方法来实现呢?

感谢任何人的帮助。

【问题讨论】:

  • 你能做的最好是一次一个字节(char)。
  • 只读取字符并将其值转换为二进制。

标签: c++ ifstream


【解决方案1】:

你不能只是一点一点地读取文件。 所以,你应该使用这样的东西:

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);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-03
    • 1970-01-01
    • 1970-01-01
    • 2014-12-29
    • 2012-01-24
    • 2021-09-07
    • 1970-01-01
    相关资源
    最近更新 更多