[완료] c++에서 eof파일에 도달한 이후 seekg로 포인터 변경이 불가능한가요?
글쓴이: oneclubs / 작성시간: 토, 2009/05/23 - 4:38오후
제목 그대로입니다.
!eof일때까지 스트림을 쭉쭉 읽다가 eof에 도달했습니다.
이때, seekg 나 seekp로 ios::beg으로 이동시키려고 했으나
이동하지 않네요 계속 eof에 머뭅니다.
임시방편으로 파일을 다시 읽는방법을 사용했는데..저게 원래 eof에 도달하면 변경이 불가한건가요?
대충 코드는 이렇습니다.
while( !fileStream->eof() ) { getline(*fileStream, line); } fileStream->seekg(0,ios_base::beg); cout << fileStream->tellg() << endl; while( !fileStream->eof() ) { getline(*fileStream, line); cout << line << endl; }
저기에서
fileStream->seekg(0,ios_base::beg);
cout << fileStream->tellg() << endl;
이부분에서 -1이 출력되더라구요..seekg가 제대로 안된건데..안됩니까?
Forums:
clear before seeking
fileStream->clear();
fileStream->seekg(0, ios_base::beg);
:)
:)
와우 감사합니다.
와우 감사합니다. 잘 작동합니다.
c++ 파일스트림 따로 공부할 기회가 없어서 하면서 배우고 있습니다.
근데 clear()는 어떤기능인가요?
왜 seeking하기 전에clear를 해줘야하는건가요~?
파일 끝에 다다른
파일 끝에 다다른 것도 일종의 에러로 간주합니다. eof 비트가 설정됩니다.
clear는 에러 비트를 지우는 함수입니다.
good(), eof(), fail(), bad(), clear() 를 찾아보시길 바랍니다.
http://www.cplusplus.com/reference/iostream/ios/
:)
감사합니다.
좋은 공부가 되었습니다.
eof에 도달한것도 에러로 생각하는군요!
나머지 함수들도 보았습니다.
감사합니다.
그렇군요
c++에서 파일 접근하는 것을 잘 몰라서 파일 접근은 항상 c로만 했는데...
좋은 내용 나중에 찾아보고자 댓글 달았습니다. 감사합니다.
댓글 달기