webentwicklung-frage-antwort-db.com.de

So schreiben Sie ein Array in eine Datei in C

Ich habe eine zweidimensionale Matrix:

char clientdata[12][128];

Wie schreibe ich den Inhalt am besten in eine Datei? Ich muss diese Textdatei ständig aktualisieren, damit bei jedem Schreibvorgang die vorherigen Daten in der Datei gelöscht werden.

10
mugetsu

Da die Größe der Daten fest ist, können Sie das gesamte Array in eine Datei schreiben, indem Sie den binären Schreibmodus verwenden:

FILE *f = fopen("client.data", "wb");
fwrite(clientdata, sizeof(char), sizeof(clientdata), f);
fclose(f);

Dadurch wird das gesamte 2D-Array auf einmal geschrieben, und der Inhalt der zuvor vorhandenen Datei wird überschrieben.

29
dasblinkenlight

Ich würde lieber einen Test hinzufügen, um es robust zu machen! Das fclose () wird in beiden Fällen ausgeführt, ansonsten wird das Dateisystem den Dateideskriptor freigeben 

int written = 0;
FILE *f = fopen("client.data", "wb");
written = fwrite(clientdata, sizeof(char), sizeof(clientdata), f);
if (written == 0) {
    printf("Error during writing to file !");
}
fclose(f);
0
Mohamed ROMDANE

Wie unglaublich einfach dieses Problem war, erwies sich als ... Das Beispiel, das oben angegeben wurde, behandelt Zeichen, dies ist, wie ein Array von ganzen Zahlen behandelt wird ... 

/* define array, counter, and file name, and open the file */
int unsigned n, prime[1000000];
FILE *fp;
fp=fopen("/Users/Robert/Prime/Data100","w");
prime[0] = 1;  /* fist prime is One, a given, so set it */
/* do Prime calculation here and store each new prime found in the array */
prime[pn] = n; 
/* when search for primes is complete write the entire array to file */
fwrite(prime,sizeof(prime),1,fp); /* Write to File */

/* To verify data has been properly written to file... */
fread(prime,sizeof(prime),1,fp); /* read the entire file into the array */
printf("Prime extracted from file Data100: %10d \n",prime[78485]); /* verify data written */
/* in this example, the 78,485th prime found, value 999,773. */

Für alle anderen, die eine Anleitung zur C-Programmierung suchen, ist diese Seite ausgezeichnet ...

Siehe: [ https://overiq.com/c-programming/101/fwrite-function-in-c/

0
user3359049