(Отредактировано: я должен был прочитать вопрос ближе ...)
Несмотря на некоторую подозрительность, вы можете получить примерно правильное поведение, имея запись в файле, которая "провалит" первый цикл, затем очистит бит сбоя в потоке и начнет читать больше.
Данные, без явного размера, но вот так
1 1 2 3 5 8 Fibb
Скорее всего, то, что я имел в виду, похоже на приведенный ниже код, по крайней мере на VS2005 с STLPort.
typedef std::istream_iterator < int, char, std::char_traits ,ptrdiff_t> is_iter;
std::copy( is_iter(cin), is_iter(), inserter(my_set,my_set.end()));
cin.clear();
std::cin >> instr;