统计二进制文件中 32 位数字的个数

标签 c count binary bit

我正在编写一个程序,我应该在其中跟踪二进制文件中有多少个 32 位数字。

例如,当输入一个总共有 4x32 位的文件时: 010010010100100100101001010010110100100010010100100100101001010001010100010010010100100100010001010010100100010010010010000

它应该打印 4。

我用 getc 试过了但它没有用。

我认为解决方案与 fread 有关但我不确定如何在这个问题中使用它。

int main() {
    FILE *fp = fopen("/home/pavlos55/GitRepo/arm11_1415_testsuite/test_cases", "rb");
    uint32_t number;
    uint32_t lines = 0;

    while (fread(&number, 4, 1, fp)) {
        lines++;
    }
    printf("%i", lines);
    return 0;
}

可以fread处于这种情况。为什么这还不够?

感谢您的帮助。

最佳答案

一个更实用的解决方案是 fseek() 到文件末尾,然后使用 ftell() 获取结果位置。这将是“文件的大小(以字节为单位)。”

关于统计二进制文件中 32 位数字的个数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30853210/

相关文章:

python - 计算字符列表在字符串中出现的次数 - Python(没有计数或计数器)

file - fortran读取二进制文件

Kotlin-Multiplatform 中的 CPointer

c - Lubuntu 上的程序优先级

mysql - SQL:输出属于某个类别的所有名称,其中该类别中的所有国家/地区都相同

C# 二进制常量表示

c - 为什么我的二进制更新打印乱码/垃圾而不是我插入的信息?

c - 带有 EOF 的 getchar() 未按预期运行

c - Bochs 中的 PintOS 安装

c++ - 如何计算 C++ 数组中高于平均值的值?