문제

내 파일을 더 강력하게 만들려고 노력하고 있습니다. IFStream을 사용하여 어떻게 보장 할 수 있습니까? seekg 파일 내에서 유효한 위치에 나를 유지합니까?

이것은 작동하지 않습니다.

while(m_File.good() && m_File.peek() != EOF)
{ ...a seekg operation moves file position past end of file... }

나는 현재 반복자가 최종 반복자를 지나서 밀려 났다고 가정하므로 peek ()는 결코 사실이 아닙니다.

도움이 되었습니까?

해결책

아니요,이 작업을 수행 할 방법이 없습니다. 파일 끝의 오프셋을 찾지 못하고 파일을 넘어서 찾지 못하도록 정의되지 않은 동작을 유발합니다. 물론 글을 쓰면 파일의 크기를 높일 수 있습니다.

다른 팁

나쁜 위치에 도달 할 때 오류 인 경우 (예 : 발생하지 않아야합니다) 스트림 예외 마스크, while 루프 밖에서 적절한 예외를 포착하십시오. 이 경우 "가장 깨끗한"솔루션입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top