Если программа пытается использовать мой класс чтения файлов для доступа к части файла, которая не существует (т. Е. Находится после ios_base :: end), какое исключение следует выдать?
Я собиралсяиспользовать std :: out_of_range, но теперь я начинаю думать, что std :: runtime_error будет более подходящим.
Edit:
Интерфейс работает немного по-другому, чем стандартный fstream
класс в том, что он основан на for
циклах, а не while
циклах.Поэтому вместо того, чтобы делать следующее:
while (MyFile.peek() != EOF)
{
char Character = MyFile.get();
// Do stuff with Character.
}
Пользователь класса может сделать это:
for (std::streampos Pos = 0; Pos < MyFile.GetCharCount(); Pos++)
{
char Character = MyFile.GetChar(Pos);
// Do stuff with Character.
}