【发布时间】:2015-08-31 10:09:39
【问题描述】:
我正在编写一个程序,我应该跟踪二进制文件中有多少个 32 位数字。
例如,当输入一个总共有 4x32 位的文件时: 0100100101001001001010010100101101001000100101001001001010010100010101000100100101001001000100010100101001000100100100100000000000000000000
它应该打印 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 可以处于这种状态。为什么这还不够?
感谢您的帮助。
【问题讨论】:
-
您是在计算字数还是字节数?如您所说,如果您计算字节数,答案应该是 16,而不是 4。
-
上面的代码又有什么问题?
-
而且,这一堆零和一实际上是您输入文件中的内容吗?我的意思是,这是您在打开文本编辑器时看到的内容吗?
-
@DoxyLover 我实际上在这个问题中犯了一个错误,我没有计算字节,我计算的是双字(32 位)。