У меня есть объект istream, который не доступен для поиска, т.е. если я вызову для него seekg()
, то произойдет сбой (данные поступают из декомпрессора, который не позволяет искать в сжатых данных назад). Можно ли добавить поток-оболочку вокруг невидимого istream, который добавляет ограниченную возможность поиска? Например, что всегда будет хранить последние 8192 байта, которые были прочитаны в памяти, чтобы можно было искать по крайней мере так далеко в потоке? Если это возможно, то как?
Я просмотрел пару руководств о том, как добавить streambuf::seekoff()
и streambuf::seekpos()
, которые, я думаю, являются функциями, которые мне нужны для этого, но я не могу понять из документации.
Может ли кто-нибудь дать мне несколько советов?
Другими словами: этот вопрос для C++ то же самое, что этот вопрос для C#.