Ich arbeite an einer Datenbank Flat-File-Projekt mit C-Sprache. Ich habe eine Struktur mit wenigen Mitgliedern erstellt. Ich verwende fwrite(), um sie in Binärdatei und fread() zu schreiben, um die Daten zu holen. Meine zwei große FrageWie fread() und fwrite Werke in C-Programmierung
1. können wir schreiben Struktur in Textdatei? Ich habe kein gutes Beispiel gesehen. Ist es praktisch falsch, es im Textformat zu schreiben? Wenn ich mit "w" anstelle von "wb" schreibe, bekomme ich das Textformat aber mit einigen zusätzlichen Wörtern.
2. wie diese fread() & Fwrite Werke(). Sie arbeiten an einem Datenblock, wie sie die Adresse des nächsten Blocks erhalten. Ich meine, wir haben den Zeiger, aber die Datei hat keine Adresse, also wie der Zeiger zum nächsten Block geht?
, können Sie nicht lesen/schreiben binären Strukturen, wenn die Datei nicht geöffnet werden im Binär-Modus ist. Natürlich müssen Sie etwas darüber nachdenken, wie Dateisysteme funktionieren und wie OS-APIs auf das Dateisystem zugreifen. Dies liegt außerhalb des Bereichs der 'fread()'/'fwrite()' Implementierungen, die das Betriebssystem für den eigentlichen Dateizugriff delegieren. –
okay danke für die Eingabe :). Sollte ich fgets/fputs verwenden? als Textformat schreiben – ekaf
Wenn Sie einen wahlfreien Zugriff auf die Daten wünschen, implementieren Sie 'fread/fwrite' (aber es wird fehlzünden, wenn die Strukturen Zeiger enthalten). Wenn Sie den ganzen Datensatz einlesen, bearbeiten und die Datei neu schreiben wollen, ist der Text gut, mit 'fprintf/fgets' und' sscanf'. Daten, die als Binärdatensätze gespeichert werden, sind oft nicht übertragbar, und wenn Ihr Programm bricht, sind die gespeicherten Daten nutzlos. Während die Textdatei für Menschen lesbar ist, ist es viel einfacher, neue Funktionen zu schreiben, um die Daten in ein anderes Programm zu lesen. Ich habe an Projekten gearbeitet, bei denen der Kunde darauf bestand, dass die Datendateien auch im CSV-Format tabletkompatibel sein müssen. –