я получаю и ошибка при выполнении 2 последовательных freopen
с, file1
содержит четное число ИнтсC++ freopen 2 файла ошибка
int x, y;
freopen("file1", "r", stdin);
while (cin >> x) {
cin >> y;
}
freopen("file2", "r", stdin);
cin >> x;
cout << x << endl;
печать данных в 1-й файл работает отлично, а во втором случае x
неправильно,
Если я прорвусь от первого цикла до достижения цели, все будет хорошо работать,
Что происходит с cin
здесь?
freopen является функцией библиотеки C, а не C++ библиотеки функций. –
Очевидно, что состояние конца файла на 'stdin' палочки и не очищается' freopen'. На его странице руководства не говорится о том, каково это ожидаемое поведение. Вы должны получить эту работу, явно называя 'clearerr()'. –
cin и >> definitievly C++ и freopen и stdin, несмотря на принадлежность к стандартной библиотеке c, могут использоваться в C++ – Christophe