试图以位为单位获取文件大小

时间:2013-12-09 18:20:11

标签: binaryfiles ifstream

现在我有

ifstream argfs (argv[1], ifstream::binary | ifstream::in)
int length;
argfs.seekg(0, argfs.end);
length = argfs.tellg();

我正试图找出文件中有多少位,但是当它运行时它会给我多少字节。我怎样才能做到这一点?这不是“:: binary”用于什么?

由于

2 个答案:

答案 0 :(得分:0)

一个字节中有8位,只是将结果乘以8,这将是总位数。

ifstream argfs (argv[1], ifstream::binary | ifstream::in)
int length;
argfs.seekg(0, argfs.end);
length = argfs.tellg();
length *= CHAR_BIT;  // will be 8

答案 1 :(得分:0)

length=argfs.tellg();
返回文件指针的位置,该位置基本上是文件指针读取的字符数 请注意 1个字符= 1个字节

此外,一个字节由8位组成,因此只需将其乘以8

length = 8*argfs.tellg();