2013-12-09 77 views
0

文件的大小現在我有試圖讓位

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

差不多我試圖找出有多少位都在文件中,但是當這個運行時,它給了我多少字節。我怎樣才能做到這一點?這不是什麼「::二進制」用於?

感謝

+1

不乘它,你會得到字符長度。嘗試乘以CHAR_BIT(如果系統不是8,我會非常驚訝)。 – doynax

回答

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 
0

length=argfs.tellg();
返回文件指針基本上是由文件指針讀取的字符的數目的位置。
注意1字符= 1個字節

另外一個字節包括8位,這樣只需8

length = 8*argfs.tellg();