2011-05-14 6 views
0

안녕하세요, 나는 (읽기를 자르지 않고, 추가하지 않고) 읽기와 쓰기 모두를 위해 바이너리 파일을 열고 싶습니다. 나는 "r + b"모드를 사용한다. 컴파일 오류가 없지만 쓰여진 내용을 읽을 때 쓰레기 값을 얻습니다. 어떤 생각.바이너리 파일의 열기 모드

그러나 파일을 쓰기 (wb로 모드)로 열면 ... in..close로 작성한 다음 파일을 읽기 (모드로 "rb")하고 파일을 열어 읽으면 작동합니다 벌금.

+1

은 사용중인 코드를 보여줍니다. – Mat

+0

어떤 종류의 "가비지 값"입니까? 간단한 테스트 결과를 붙여 넣을 수 있습니까? –

답변

2

"r +", "w +"와 같은 읽기/쓰기 모드로 파일을 열면 파일 포인터가 올바른 위치를 가리키는 지 확인해야합니다. fseek()는 당신의 친구입니다.

또한 함수에서 반환 된 값을 항상 확인하는 것이 좋습니다. 이 경우, fread()가 사용자에게 알리지 않고 실패했을 수 있습니다.

+0

고마워 ... fseek() 또는 오히려 되감기() 내 경우에는 실제로 내 친구 –

0

버퍼링 된 I/O를 사용하는 경우 기록 된 데이터가 로컬 버퍼에 계속 남아 있지 않도록하기 위해 작성한 것을 다시 읽기 전에 플러시를 수행해야합니다.

+0

fclose()가 버퍼를 플러시하지 않아야합니까? –

+0

예 그래야합니다. –

+0

"rb +"모드에서 파일을 닫을 때 읽지 않습니다. –

관련 문제