Не нужно вам так: for(i =0; i<=длина файла -1;i++)
Читайте пока не будет eof() или ошибки, обычно делают примерно так: while(f.good()) { f.read() }
Если же все таки нужно узнать длину файла (иногда действительно надо), то используйте такую схему - после открытия файла, переходите в конец и узнаете текущую позицию - это и будет длина файла.
Потом не забудьте закрыть файл или вернуться в начало (нужную позицию).