C array in Datei schreiben

DerEisige

Erfahrenes Mitglied
Hallo Leute,

könnt ihr mir Kurtz helfen.

Für was ist dim zuständig?

C++:
// Funktionalität: int-Array in Datei schreiben
// Parameter        char *datei:    Dateiname
//                  char *mode:     Zugriffsmode z. B. "rb" oder "ab"
//                  int *arrInt:    zu Schreibender Wert
//                  int dim:
// Rueckgabewert:    Zahl der geschriebenen Bytes
int schreibeArrInt(char *datei, char *mode, int *arrInt, int dim){
    FILE *fp;
    int x, i; ;
    fp = fopen (datei, mode);
    if (fp == NULL) {
        printf("Fehler beim Oeffnen der Datei.");
        return 1;
    }
    for (i=0; i<dim; i++){
        x=fwrite (arrInt, sizeof(int), 1, fp);
        fflush(fp);
        arrInt++;
    }
    fclose (fp);
    return x;
}
 
Wenn ich meine bescheidenen C Kenntnisse mal rauskrame würde ich sagen, dass dim die Größe des Array angibt, und man dementsprchend mit der for-Schleife über das ganze Array iteriert. arrInt++ erhöht den Array-Pointer dabei um eins und zeigt somit auf den jeweils nächsten Wert.
 
Gibt es einen besonderen Grund, warum du nicht alles in einen fwrite-Aufruf packst?

Das wäre deutlich performanter als die ints einzeln rauszuschreiben.
 
oder bekomme ich immer eine 1 bei erfolg und eine 0 bei einem Fehler?
fwrite gibt die Anzahl der fehlerfrei geschriebenen Speicherblöcke (Parameter 3) zurück, bei dir also tatsächlich 0 bei Fehler und 1 bei Erfolg. Diese Information sollte deine Funktion schreibeArrInt auch zurückliefern, momentan liefert sie 1 zurück bei Erfolg und bei Fehlern.
arrInt ist kein Array sondern ein Zeiger auf int.

Üblich ist bei C-Funktionen mit int-Returnwert, dass sie 0 zurückliefern bei Erfolg und !=0 im Fehlerfall und dabei dann z.B. eine eindeutige Fehlernummer.
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück