IFStreams에서 SeekG를 사용하여 유효한 위치를 유지합니다
문제
내 파일을 더 강력하게 만들려고 노력하고 있습니다. IFStream을 사용하여 어떻게 보장 할 수 있습니까? seekg
파일 내에서 유효한 위치에 나를 유지합니까?
이것은 작동하지 않습니다.
while(m_File.good() && m_File.peek() != EOF)
{ ...a seekg operation moves file position past end of file... }
나는 현재 반복자가 최종 반복자를 지나서 밀려 났다고 가정하므로 peek ()는 결코 사실이 아닙니다.
해결책
아니요,이 작업을 수행 할 방법이 없습니다. 파일 끝의 오프셋을 찾지 못하고 파일을 넘어서 찾지 못하도록 정의되지 않은 동작을 유발합니다. 물론 글을 쓰면 파일의 크기를 높일 수 있습니다.
다른 팁
나쁜 위치에 도달 할 때 오류 인 경우 (예 : 발생하지 않아야합니다) 스트림 예외 마스크, while 루프 밖에서 적절한 예외를 포착하십시오. 이 경우 "가장 깨끗한"솔루션입니다.
제휴하지 않습니다 StackOverflow