안녕하세요 스페로 입니다.
저장할 f2스트림에 대한 유효와 읽어들일 f1스트림에서 get()에 대한 성공 조건을 검사 후
모두 참일때 f2스트림에 put()을 한다는 의미라고 생각 합니다.
if(!f2)
cerr << "Cannot open File2.txt for output";
여기서 이미 f2스트림에 대한 조건을 검사 했으므로 불필요 할지도 모릅니다.
while (f1.get(ch) 이런식으로 해도 상관이 없지 않을까요?
다른경우로 생각해보면 파일을 쓰는 도중 디스크 공간이 가득 찬경우 등에 대한 에러 처리를 위한 것인지도..?
테스트 해보지 않아 모르겠습니다.
f2.put()을 수행후 공간이 모자라는 경우가 생기면 f2가 NULL이 되도록 되어 있는지 모르겠습니다.
그렇다면 그이후 while()문을 벗어 나겠지요..
그럼^^
진수.네모 님이 쓰신 글 :
: #include <fstream.h>
:
: void main()
: {
: char ch;
:
: ifstream f1("file.txt");
: ofstream f2("file2.txt");
:
: if(!f1)
: cerr << "Cannot open File.txt for input";
: if(!f2)
: cerr << "Cannot open File2.txt for output";
:
: while(f2 && f1.get(ch))
: f2.put(ch);
:
: return;
: }
:
: 여기서 while(f2 && f1.get(ch)) 이 궁금합니다.
:
: 어떻게 동작하는지 모르겠어요 ^^;
:
: 좋은 추석 ~
|