안녕하세요, 나는 (읽기를 자르지 않고, 추가하지 않고) 읽기와 쓰기 모두를 위해 바이너리 파일을 열고 싶습니다. 나는 "r + b"모드를 사용한다. 컴파일 오류가 없지만 쓰여진 내용을 읽을 때 쓰레기 값을 얻습니다. 어떤 생각.바이너리 파일의 열기 모드
그러나 파일을 쓰기 (wb로 모드)로 열면 ... in..close로 작성한 다음 파일을 읽기 (모드로 "rb")하고 파일을 열어 읽으면 작동합니다 벌금.
안녕하세요, 나는 (읽기를 자르지 않고, 추가하지 않고) 읽기와 쓰기 모두를 위해 바이너리 파일을 열고 싶습니다. 나는 "r + b"모드를 사용한다. 컴파일 오류가 없지만 쓰여진 내용을 읽을 때 쓰레기 값을 얻습니다. 어떤 생각.바이너리 파일의 열기 모드
그러나 파일을 쓰기 (wb로 모드)로 열면 ... in..close로 작성한 다음 파일을 읽기 (모드로 "rb")하고 파일을 열어 읽으면 작동합니다 벌금.
"r +", "w +"와 같은 읽기/쓰기 모드로 파일을 열면 파일 포인터가 올바른 위치를 가리키는 지 확인해야합니다. fseek()는 당신의 친구입니다.
또한 함수에서 반환 된 값을 항상 확인하는 것이 좋습니다. 이 경우, fread()가 사용자에게 알리지 않고 실패했을 수 있습니다.
고마워 ... fseek() 또는 오히려 되감기() 내 경우에는 실제로 내 친구 –
버퍼링 된 I/O를 사용하는 경우 기록 된 데이터가 로컬 버퍼에 계속 남아 있지 않도록하기 위해 작성한 것을 다시 읽기 전에 플러시를 수행해야합니다.
fclose()가 버퍼를 플러시하지 않아야합니까? –
예 그래야합니다. –
"rb +"모드에서 파일을 닫을 때 읽지 않습니다. –
은 사용중인 코드를 보여줍니다. – Mat
어떤 종류의 "가비지 값"입니까? 간단한 테스트 결과를 붙여 넣을 수 있습니까? –