Isstream :: tellg () возвращает -1 при использовании с моим пользовательским классом Streambuf?C++

Программы на C++. Форум разработчиков
Anonymous
Isstream :: tellg () возвращает -1 при использовании с моим пользовательским классом Streambuf?

Сообщение Anonymous »

Я пытаюсь создать iStream < /code>, который считывается непосредственно из буфера необработанной памяти.

Код: Выделить всё

  class membuf : public basic_streambuf
{
public:
membuf(char* p, size_t n) {
setg(p, p, p + n);
}
};
< /code>

Затем я создаю свой iStream < /code>, используя этот membuf < /code>: < /p>

    membuf mb(dataPointer, dataLength);
istream reader(&mb);
Я затем читаю с помощью getline () и >> операторы, и все замечательно. Тем не менее, я не могу использовать seekg () , чтобы перемотать обратно в начало моего буфера, и iStream :: tellg () всегда возвращает -1 .

Мне нужно написать еще код, чтобы получить их на работу, или это обречено на неудачу?>

Подробнее здесь: https://stackoverflow.com/questions/676 ... mbuf-class

Вернуться в «C++»