Тебе наверно надо юзать stringstream и strstream - один из них депрекатед в новом GCC (начиная с 3-го) - создай его двусторонним (на ввод и вывод - ioXXX), потом залей туда данные, и считывай оттуда, после чего делай flush() своему потоку - пример привести не смогу, по памяти пишу, но работает.
Тонкости разделения одного буфера на два разнотипных потока увы не знаю :)
Более конкретно: есть массив char[] содержащий копию текстового файла и есть функция парсящая файл заданный istream так вот необходимо преобразовать етот массив в istream и передать в ф-ю. Получить какую либо инфу на тему копией чего является char[] невозможно
flush() не помогает, надо иначе - я не помню что точно использовать - просто как в примере, если в поток забуцнешь данные ( << ), то потом можешь их забрать ( >> ), и повторно при записи/заборе будут выдаваться старые данные. Или перемещать указатель чтения... В общем, что помнил по проблеме, то и написал.