我正在编写一个程序,我应该在其中跟踪二进制文件中有多少个 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/