I und Fehler erhalten, während zwei aufeinanderfolgende freopen
s tun, file1
enthalten gerade Anzahl von IntsC++ freopen 2 Dateien Fehler
int x, y;
freopen("file1", "r", stdin);
while (cin >> x) {
cin >> y;
}
freopen("file2", "r", stdin);
cin >> x;
cout << x << endl;
Druckdaten in der 1. Datei funktionieren gut, während im zweiten Fall x
falsch ist,
Wenn ich aus der ersten Schleife vor dem Erreichen des Endes bricht alles funktioniert gut,
was passiert mit cin
hier?
freopen eine C-Library-Funktion, nicht eine C++ Bibliothek Funktion. –
Offensichtlich bleibt die End-of-File-Bedingung auf 'stdin' stecken und wird nicht durch' freopen' gelöscht. Seine Manual-Seite sagt nichts über das erwartete Verhalten aus. Sie sollten in der Lage sein, diese Arbeit zu bekommen, indem Sie 'clearerr()' explizit aufrufen. –
cin und >> sind definitiv C++ und freopen und stdin, obwohl sie zur c-standardbibliothek gehören, können sie in C++ – Christophe