Конечно у нас возникает задача определения конца потока. И такая возможность есть. Функция eof() позволяет определить достигнут ли конец потока. Ранее это можно было сделать только с файлами, а мы сделаем это с потоком в памяти.
// TestStream.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include "iostream.h" #include "strstrea.h" void main() { double d=1.34556; int i=10; strstream buf; buf << d << " " << i << " " << "Hello"; char buffer[255]; while (!buf.eof()) { buf >> buffer; cout << buffer; } cout << buf.rdbuf(); }
В результате из потока будет извлечены все данные и указатель установлен в конец.