Wenn ich eine große Binärdatei habe (sagen wir es 100.000.000 Floats), gibt es einen Weg in C (oder C++), um die Datei zu öffnen und a zu lesen spezifisches Float, ohne die ganze Datei in den Speicher laden zu müssen (dh wie kann ich schnell herausfinden, was der 62,821,214. Float ist)? Eine zweite Frage: Gibt es eine Möglichkeit, den spezifischen Float in der Datei zu ändern, ohne die gesamte Datei neu schreiben zu müssen?Lesen von und Schreiben in die Mitte einer Binärdatei in C/C++
Ich Envisioning Funktionen wie:
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?
}
Zum Schreiben, öffnen Sie im "r +" Modus und nicht "a +". Im Append-Modus, unabhängig davon, wo Sie suchen, wird immer an das Ende der Datei geschrieben. –