이 개 파일이 file1
는 두 번째 경우에 x
잘못 동안 1 파일C++ 2 개 연속 <code>freopen</code>의를하는 동안 내가 얻을 오류 오류
int x, y;
freopen("file1", "r", stdin);
while (cin >> x) {
cin >> y;
}
freopen("file2", "r", stdin);
cin >> x;
cout << x << endl;
인쇄 데이터가 잘 작동하는 int 짝수를 포함 freopen을,
끝까지 도달하기 전에 첫 번째 루프에서 깨진 경우 모든 것이 정상적으로 작동합니다.
여기에 cin
의 증상은 무엇입니까? 문제의
freopen을은 C 라이브러리 함수가 아니라 C++ 라이브러리 기능입니다. –
분명히'stdin'의 파일 끝 (end-of-file) 조건이 붙어서'freopen'에 의해 지워지지 않습니다. 그것의 매뉴얼 페이지는 예상 된 행동에 대해 침묵합니다. 명시 적으로'clearerr()'을 호출하여이 작업을 할 수 있어야합니다. –
cin과 >>가 definitievly C++이고 freopen과 stdin이 C 표준 라이브러리에 속해 있음에도 불구하고 C++에서 사용할 수 있습니다 – Christophe