如何在c中获取文件长度?

use*_*340 2 c io file filesize

我只是有一个关于如何获取包含十六进制数字的文件长度的快速问题.例如:

724627916C
Run Code Online (Sandbox Code Playgroud)

我能想到的唯一方法是将十六进制值转换为二进制:

724627916C => 0111001001000110001001111001000101101100
Run Code Online (Sandbox Code Playgroud)

然后计算二进制值的位数.只是想知道这是否正确?谢谢

sha*_*tte 15

不,这不是正确的方法.

FILE *fp = fopen("filename", "rb");
fseek(fp, 0, SEEK_END);
int lengthOfFile = ftell(fp);
fclose(fp);
Run Code Online (Sandbox Code Playgroud)

原则上:打开文件,搜索到最后并检索当前位置.你会得到的是文件中的字节数.

编辑:你的问题有点不清楚.是否要检索文件中的字节数,或者文件中十六进制字符串表示的字节数?如果是后一种情况,并且文件中没有任何空格,只需将上述方法返回的字节数除以2即可.