| [ CnUnix ] in KIDS 글 쓴 이(By): illuza (큐티하니) 날 짜 (Date): 2002년 12월 1일 일요일 오전 01시 49분 16초 제 목(Title): [질문] C++에서 파일 스트림 안녕하세요. 파일 입출력에 대해 궁금한 점이 있어서 이렇게 올립니다. fruit라는 파일에 다음과 같은 내용이 쓰여져 있다고 하면, apple banana orange kiwi 이 파일을 아래와 같이 읽습니다. ifstream ff (fruit, ios_base::in); string sfruit; vector<string> vfruit; while (!ff.eof()){ ff >> sfruit; vfruit.push_back(sfruit); } 그런데 vector안에 있는 string를 출력시키면 파일에 있는 내용과 달리 아래와 같이 나옵니다. apple banana orange kiwi kiwi 즉 kiwi가 한번 더 나오는거죠. debug로 확인해보니까 파일의 kiwi를 읽고 파일스트 림이 아직 end of file이 아니라서 전에 있던 kiwi가 vector에 들어간거 같습니다. 제 생각에는 kiwi까지 읽었으면 뒤에 아무 것도 없어서 end of file이라고 해야 될 거 같은데 그게 아니군요. 참고로 kiwi다음에 new line를 넣지는 않았습니다. 이게 왜 이렇게 되는지 알수가 없군요. 환경은 g++ 3.1.1이고 redhat 7.2, kernel 2.4.19입니다. 그럼 미리 감사드립니다. |