В этом сообщении группы новостей рассматриваются ваши варианты.
Это зависит от системы, и на плакате не указано
система, но cin.clear () должен работать. Я проверил прилагаемый
программа в системе UNIX с AT & T версиями iostreams.
#include <iostream.h>
int main()
{
for(;;) {
if ( cin.eof() ) {
cout << "EOF" << endl;
cin.clear();
}
char c ;
if ( cin.get(c) ) cout.put(c) ;
}
}
Да, это нормально работает в cfront и TC ++.
В g ++, где проблема возникла впервые, требуется дополнительное действие:
cin.clear();
rewind ( _iob ); // Seems quite out of place, doesn't it?
// cfront also accepts but doesn't
// require this rewind.
Хотя я отмечаю, что это было в 1991 году, оно все равно должно работать. Не забудьте использовать стандартный заголовок iostream
, а не iostream.h
.
(Кстати, я нашел этот пост с поисковыми запросами Google "reopen cin c ++", второй результат.)
Дайте нам знать, как вы поживаете. Вы также можете просто использовать freopen
.