• Giga@hdv-tech.com
  • Perkhidmatan Dalam Talian 24J:
    • 7189078c
    • sns03
    • 6660e33e
    • youtube 拷贝
    • instagram

    C, Membaca dan Menulis Dokumen

    Masa siaran: 11 Ogos 2023

    Menerangkan cara pengaturcara C mencipta, membuka dan menutup fail teks atau fail binari.

    Fail, bermaksud satu siri bait, sama ada fail teks atau fail binari, C Language, bukan sahaja menyediakan akses kepada fungsi peringkat teratas, tetapi juga menyediakan panggilan asas (OS) untuk memproses fail pada peranti storan . Bab ini akan menerangkan panggilan penting dalam pengurusan dokumen.

    fail terbuka

    Biasanya menggunakan fungsi fopen () untuk mencipta fail baharu atau membuka fail sedia ada, panggilan ini memulakan objek jenis FILE yang mengandungi semua maklumat yang diperlukan untuk mengawal aliran. Berikut ialah prototaip panggilan fungsi ini:

    FAIL *fopen ( const char * nama fail , const char * mod );

    Di sini nama fail ialah rentetan untuk menamakan fail, nilai mod akses boleh menjadi salah satu daripada nilai berikut:

    corak

    penerangan

    r

    Buka fail teks sedia ada yang membolehkannya dibaca.

    w

    Buka fail teks yang membenarkan menulis ke fail. Jika fail tidak wujud, fail baharu akan dibuat. Di sini, program anda menulis kandungan dari permulaan fail. Jika fail itu wujud, ia akan dipotong kepada panjang sifar dan ditulis semula.

    a

    Buka fail teks dan tulis pada fail dalam mod tambah. Jika fail tidak wujud, fail baharu akan dibuat. Di sini, program anda menambahkan kandungan pada fail yang telah anda miliki.

    r+

    Buka fail teks yang membolehkan anda membaca dan menulis fail tersebut.

    w+

    Buka fail teks yang membolehkan anda membaca dan menulis fail tersebut. Jika fail sudah wujud, fail dipotong kepada panjang sifar, dan jika fail itu tidak wujud, fail baharu dicipta.

    a+

    Buka fail teks yang membolehkan anda membaca dan menulis fail tersebut. Jika fail tidak wujud, fail baharu akan dibuat. Bacaan bermula pada permulaan fail, dan tulis hanya dalam mod tambah.

    Jika fail binari diproses, gunakan mod akses berikut untuk menggantikan yang di atas:

    "rb", "wb", "ab", "rb+", "r+b", "wb+", "w+b", "ab+", "a+b"

    fail tertutup

    Untuk menutup fail, sila gunakan fungsi fclose(). Prototaip fungsi adalah seperti berikut:

    int fclose ( FAIL *fp );

    • Jika fail berjaya ditutup, fungsi fclose() mengembalikan sifar, dan jika ralat mengembalikan EOF. Fungsi ini, sebenarnya, mengalih keluar data daripada penimbal, menutup fail dan melepaskan semua memori yang digunakan untuk fail itu. EOF ialah pemalar yang ditakrifkan dalam fail pengepala stdio.h

    Pustaka standard C menyediakan pelbagai fungsi untuk membaca dan menulis fail mengikut aksara atau sebagai rentetan panjang tetap.

    Tulis ke fail

    Berikut ialah fungsi paling mudah untuk menulis aksara ke strim:

    int fputc ( int c , FAIL *fp );

    Fungsi fputc () menulis nilai aksara parameter c ke dalam aliran keluaran yang ditunjukkan oleh fp. Jika penulisan berjaya, ia mengembalikan aksara bertulis dan EOF jika ralat berlaku. Anda boleh menggunakan fungsi berikut untuk menulis rentetan yang berakhir dengan nol kepada strim:

    int fputs ( const char *s , FILE *fp );

    Fungsi fputs () menulis rentetan s ke aliran keluaran di mana fp menunjuk ke. Jika penulisan berjaya, ia mengembalikan nilai bukan negatif dan EOF jika ralat berlaku. Anda juga boleh menggunakan fungsi int fprintf (FILE * fp, const char * format,...) menulis rentetan pada fail. Cuba contoh berikut:

    Nota:Pastikan anda mempunyai direktori tmp yang tersedia, dan jika ia tidak wujud, anda perlu menciptanya pada komputer anda terlebih dahulu.

    / tmp biasanya merupakan direktori sementara pada sistem Linux. Jika anda berjalan pada sistem Windows, anda perlu mengubah suainya kepada direktori yang sedia ada dalam persekitaran setempat, seperti: C: \ tmp, D: \ tmp, dsb.

    contoh hidup

    #termasuk int main () { FAIL *fp = NULL ; fp = fopen ("/tmp/test.txt ", "w+"); fprintf (fp , "Ini sedang menguji fprintf...\n "); fputs ("Ini adalah ujian untuk fputs...\n ", fp ); fclose (fp ); }

    Apabila kod di atas disusun dan dilaksanakan, ia mencipta fail test.txt baharu dalam direktori / tmp. Dan menulis kepada dua baris menggunakan dua fungsi yang berbeza. Jom baca fail ini seterusnya.

    Baca fail

    Berikut ialah fungsi paling mudah untuk membaca satu aksara daripada fail:

    int fgetc ( FAIL * fp );

    Fungsi fgetc () membaca aksara daripada fail input yang ditunjukkan oleh fp. Nilai pulangan ialah aksara baca dan EOF jika ralat berlaku. Fungsi berikut membolehkan anda membaca rentetan daripada aliran:

    char *fgets ( char *buf , int n , FILE *fp );

    Fungsi fgets () membaca n-1 aksara daripada aliran input yang diarahkan oleh fp. Ia menyalin rentetan baca ke buffer buffer dan menambahkan aksara nol pada penghujung untuk menamatkan rentetan.

    Jika fungsi ini menemui aksara baris terputus '\ n' atau EOF hujung fail sebelum membaca aksara terakhir, maka hanya kembali kepada aksara baca, termasuk pemisah baris. Anda juga boleh menggunakan fungsi int fscanf (FILE * fp, const char * format,...) untuk membaca rentetan daripada fail, tetapi ia berhenti membaca apabila menemui ruang pertama dan pemisah baris.

    contoh hidup

    #termasuk int main () { FAIL *fp = NULL ; char buff [255]; fp = fopen ("/tmp/test.txt ", "r "); fscanf (fp , "%s ", buff ); printf ("1: %s \n ", buff ); fgets (buff , 255, (FILE *)fp ); printf ("2: %s \n ", buff ); fgets (buff , 255, (FILE *)fp ); printf ("3: %s \n ", buff ); fclose (fp ); }

    Apabila kod di atas disusun dan dilaksanakan, ia membaca fail yang dibuat dalam bahagian sebelumnya, menghasilkan keputusan berikut:

    1: Ini 2: sedang menguji untuk fprintf...

    3: Ini adalah ujian untuk fputs...

    Pertama, kaedah fscanf() hanya membaca This .kerana ia menemui ruang di belakang. Kedua, panggil functon fgets () untuk membaca bahagian yang tinggal sehingga akhir baris. Akhir sekali, panggil fgets () untuk membaca baris kedua sepenuhnya.

    Fungsi I / O binari

    Dua fungsi berikut digunakan untuk input dan output binari:

    size_t fread (void *ptr , size_t size_of_elements , size_t number_of_elements , FAIL *a_file ); size_t fwrite (const void *ptr , size_t size_of_elements , size_t number_of_elements , FAIL *a_file );

    Kedua-dua fungsi dibaca dan ditulis untuk blok storan-biasanya tatasusunan atau struktur.

    Di atas tentang pembacaan dan penulisan fail C adalah milik HDV Phoelectron Technology Ltd., sebuah operasi teknikal perisian. Dan syarikat untuk peralatan berkaitan rangkaian (seperti: ACONU/ komunikasiONU/ bijakONU/ seratONU, dsb.) telah mengumpulkan pasukan perisian yang berkuasa, untuk setiap pelanggan menyesuaikan permintaan eksklusif yang memerlukannya, juga membiarkan produk kami lebih pintar dan maju.



    web聊天