Sprawa jest prosta – wystarczy po otworzeniu pliku przesunąć się (seekg) na jego koniec (drugim parametrem będzie flaga end) a potem odczytać aktualną pozycję w pliku (tellg), która zwróci nam pozycję w bajtach. Potem z powrotem przesuwamy się na początek pliku (seekg z drugim parametrem beg). Przykład:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
#include #include using namespace std ; int main() { ifstream istr("costam.bmp" , ios::in | ios::binary) ; istr.seekg(0 , ios::end) ; int rozmiar = istr.tellg() ; istr.seekg(0 , ios::beg) ; cout << "Rozmiar pliku (w bajtach): " << rozmiar << ", w kilobajtach: " << rozmiar / 1024 << endl ; return 0 ; } |
U mnie pojawił się tekst: Rozmiar pliku (w bajtach): 1440054, w kilobajtach: 1406
Autor: Iskar