큰 이진 파일 (100,000,000 개의 부동 소수점이 있음)이 있으면 C 또는 C++에서 파일을 열고 (즉, 62,821,214 번째 플로트가 무엇인지 빠르게 찾을 수있는 방법) 전체 플로트를 메모리에로드 할 필요가 없습니다. 두 번째 질문은 전체 파일을 다시 작성하지 않고 파일의 특정 float를 변경하는 방법이 있습니까?C/C++에서 이진 파일의 읽기 및 쓰기
내가 좋아하는 기능을 구상하고 있습니다 : 당신은 부동의 크기를 알고
float readFloatFromFile(const char* fileName, int idx) {
FILE* f = fopen(fileName,"rb");
// What goes here?
}
void writeFloatToFile(const char* fileName, int idx, float f) {
// How do I open the file? fopen can only append or start a new file, right?
// What goes here?
}
글을 쓰려면 "+ +"모드가 아니라 "r +"모드로여십시오. 추가 모드에서는 어디에서 탐색할지에 관계없이 쓰기는 항상 파일의 끝으로 이동합니다. –