Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> Bahasa C

C File I/O:Buat, Buka, Baca, Tulis, dan Tutup File

C Manajemen file

File dapat digunakan untuk menyimpan sejumlah besar data persisten. Seperti banyak bahasa lain, 'C' menyediakan fungsi manajemen file berikut,

  1. Pembuatan file
  2. Membuka file
  3. Membaca file
  4. Menulis ke file
  5. Menutup file

Berikut ini adalah fungsi manajemen file terpenting yang tersedia di ‘C,’

fungsi tujuan fopen () Membuat file atau membuka file yang adafclose () Menutup filefprintf () Menulis blok data ke filefscanf () Membaca data blok dari filegetc() Membaca satu karakter dari fileputc () Menulis satu karakter ke filegetw () Membaca bilangan bulat dari fileputw () Menulis bilangan bulat ke filefseek () Menyetel posisi penunjuk file ke lokasi tertentuftell () Mengembalikan posisi penunjuk file saat inimundur () Mengatur penunjuk file di awal file


Dalam tutorial ini, Anda akan belajar-

Cara Membuat Berkas

Kapan pun Anda ingin bekerja dengan file, langkah pertama adalah membuat file. File tidak lain adalah ruang dalam memori tempat data disimpan.

Untuk membuat file dalam program 'C' sintaks berikut digunakan,

FILE *fp;
fp = fopen ("file_name", "mode");

Dalam sintaks di atas, file adalah struktur data yang didefinisikan dalam pustaka standar.

fopen adalah fungsi standar yang digunakan untuk membuka file.

fp adalah penunjuk file yang menunjuk ke jenis file.

Setiap kali Anda membuka atau membuat file, Anda harus menentukan apa yang akan Anda lakukan dengan file tersebut. File dalam pemrograman 'C' dapat dibuat atau dibuka untuk tujuan membaca/menulis. Mode digunakan untuk menentukan apakah Anda ingin membuka file untuk tujuan yang diberikan di bawah ini. Berikut ini adalah berbagai jenis mode dalam pemrograman 'C' yang dapat digunakan saat bekerja dengan file.

Mode File Deskripsi rBuka file untuk dibaca. Jika file dalam mode membaca, maka tidak ada data yang dihapus jika file sudah ada di sistem.wBuka file untuk ditulis. Jika file dalam mode penulisan, maka file baru dibuat jika file tidak ada sama sekali. Jika file sudah ada di sistem, maka semua data di dalam file terpotong, dan dibuka untuk tujuan penulisan.a Buka file dalam
mode tambahkan. Jika sebuah file dalam mode append, maka file tersebut dibuka. Konten dalam file tidak berubah.r+ terbuka untuk membaca dan menulis dari awalw+terbuka untuk membaca dan menulis, menimpa filea+terbuka untuk membaca dan menulis, menambahkan ke file

Dalam sintaks yang diberikan, nama file dan mode ditentukan sebagai string sehingga harus selalu diapit oleh tanda kutip ganda.

Contoh:

#include <stdio.h>
int main() {
FILE *fp;
fp  = fopen ("data.txt", "w");
}

Keluaran:

File dibuat di folder yang sama tempat Anda menyimpan kode.

Anda dapat menentukan jalur di mana Anda ingin membuat file Anda

#include <stdio.h>
int main() {
FILE *fp;
fp  = fopen ("D://data.txt", "w");
}

Cara Menutup file

Seseorang harus selalu menutup file setiap kali operasi pada file selesai. Itu berarti konten dan tautan ke file dihentikan. Ini mencegah kerusakan yang tidak disengaja pada file.

'C' menyediakan fungsi fclose untuk melakukan operasi penutupan file. Sintaks fclose adalah sebagai berikut,

fclose (file_pointer);

Contoh:

FILE *fp;
fp  = fopen ("data.txt", "r");
fclose (fp);

Fungsi fclose mengambil penunjuk file sebagai argumen. File yang terkait dengan penunjuk file kemudian ditutup dengan bantuan fungsi fclose. Ini mengembalikan 0 jika penutupan berhasil dan EOF (akhir file) jika terjadi kesalahan saat penutupan file.

Setelah menutup file, penunjuk file yang sama juga dapat digunakan dengan file lain.

Dalam pemrograman 'C', file secara otomatis ditutup ketika program dihentikan. Menutup file secara manual dengan menulis fungsi fclose adalah praktik pemrograman yang baik.

Menulis ke File

Di C, saat Anda menulis ke file, karakter baris baru '\n' harus ditambahkan secara eksplisit.

Pustaka stdio menawarkan fungsi yang diperlukan untuk menulis ke file:

Program di bawah ini menunjukkan cara melakukan penulisan ke file:

fputc() Fungsi:

#include <stdio.h>
int main() {
        int i;
        FILE * fptr;
        char fn[50];
        char str[] = "Guru99 Rocks\n";
        fptr = fopen("fputc_test.txt", "w"); // "w" defines "writing mode"
        for (i = 0; str[i] != '\n'; i++) {
            /* write to file using fputc() function */
            fputc(str[i], fptr);
        }
        fclose(fptr);
        return 0;
    }

Keluaran:

Program di atas menulis satu karakter ke dalam fputc_test.txt file tersebut hingga mencapai simbol baris berikutnya “\n” yang menandakan bahwa kalimat tersebut berhasil ditulis. Prosesnya adalah mengambil setiap karakter array dan menuliskannya ke dalam file.

  1. Pada program di atas, kita telah membuat dan membuka file bernama fputc_test.txt dalam mode tulis dan mendeklarasikan string kita yang akan ditulis ke dalam file tersebut.
  2. Kami melakukan operasi penulisan karakter per karakter menggunakan for loop dan menempatkan setiap karakter dalam file kami sampai karakter “\n” ditemukan kemudian file ditutup menggunakan fungsi fclose.

fputs () Fungsi:

#include <stdio.h>
int main() {
        FILE * fp;
        fp = fopen("fputs_test.txt", "w+");
        fputs("This is Guru99 Tutorial on fputs,", fp);
        fputs("We don't need to use for loop\n", fp);
        fputs("Easier than fputc function\n", fp);
        fclose(fp);
        return (0);
    }

KELUARAN:

  1. Pada program di atas, kita telah membuat dan membuka file bernama fputs_test.txt dalam mode tulis.
  2. Setelah kita melakukan operasi tulis menggunakan fungsi fputs() dengan menulis tiga string yang berbeda
  3. Kemudian file ditutup menggunakan fungsi fclose.

fprintf()Fungsi:

#include <stdio.h>
    int main() {
        FILE *fptr;
        fptr = fopen("fprintf_test.txt", "w"); // "w" defines "writing mode"
        /* write to file */
        fprintf(fptr, "Learning C with Guru99\n");
        fclose(fptr);
        return 0;
    }

KELUARAN:

  1. Dalam program di atas kita telah membuat dan membuka file bernama fprintf_test.txt dalam mode tulis.
  2. Setelah operasi tulis dilakukan menggunakan fungsi fprintf() dengan menulis string, maka file ditutup menggunakan fungsi fclose.

Membaca data dari File

Ada tiga fungsi berbeda yang didedikasikan untuk membaca data dari file

Program berikut mendemonstrasikan pembacaan dari file fputs_test.txt masing-masing menggunakan fungsi fgets(),fscanf() dan fgetc() :

#include <stdio.h>
int main() {
        FILE * file_pointer;
        char buffer[30], c;

        file_pointer = fopen("fprintf_test.txt", "r");
        printf("----read a line----\n");
        fgets(buffer, 50, file_pointer);
        printf("%s\n", buffer);

        printf("----read and parse data----\n");
        file_pointer = fopen("fprintf_test.txt", "r"); //reset the pointer
        char str1[10], str2[2], str3[20], str4[2];
        fscanf(file_pointer, "%s %s %s %s", str1, str2, str3, str4);
        printf("Read String1 |%s|\n", str1);
        printf("Read String2 |%s|\n", str2);
        printf("Read String3 |%s|\n", str3);
        printf("Read String4 |%s|\n", str4);

        printf("----read the entire file----\n");

        file_pointer = fopen("fprintf_test.txt", "r"); //reset the pointer
        while ((c = getc(file_pointer)) != EOF) printf("%c", c);

        fclose(file_pointer);
        return 0;
    }

Hasil:

----read a line----
Learning C with Guru99

----read and parse data----
Read String1 |Learning|
Read String2 |C|
Read String3 |with|
Read String4 |Guru99|
----read the entire file----
Learning C with Guru99

  1. Pada program di atas, kita telah membuka file bernama “fprintf_test.txt” yang sebelumnya ditulis menggunakan fungsi fprintf(), dan berisi string “Belajar C dengan Guru99”. Kami membacanya menggunakan fungsi fgets() yang membaca baris demi baris di mana ukuran buffer harus cukup untuk menangani seluruh baris.
  2. Kita buka kembali file tersebut untuk mereset file pointer ke titik awal file. Buat berbagai variabel string untuk menangani setiap kata secara terpisah. Cetak variabel untuk melihat isinya. Fscanf() terutama digunakan untuk mengekstrak dan mengurai data dari file.
  3. Buka kembali file untuk mereset file penunjuk ke titik awal file. Baca data dan cetak dari file karakter demi karakter menggunakan fungsi getc() hingga pernyataan EOF ditemukan
  4. Setelah melakukan operasi pembacaan file menggunakan varian yang berbeda, kami kembali menutup file tersebut menggunakan fungsi fclose.

Berkas Interaktif Baca dan Tulis dengan getc dan putc

Ini adalah operasi file yang paling sederhana. Getc adalah singkatan dari get character, dan putc adalah singkatan dari put character. Kedua fungsi ini digunakan untuk menangani hanya satu karakter pada satu waktu.

Program berikut menunjukkan fungsi penanganan file dalam pemrograman 'C':

#include <stdio.h>
int main() {
        FILE * fp;
        char c;
        printf("File Handling\n");
        //open a file
        fp = fopen("demo.txt", "w");
        //writing operation
        while ((c = getchar()) != EOF) {
            putc(c, fp);
        }
        //close file
        fclose(fp);
        printf("Data Entered:\n");
        //reading
        fp = fopen("demo.txt", "r");
        while ((c = getc(fp)) != EOF) {
            printf("%c", c);
        }
        fclose(fp);
        return 0;
    }

Keluaran:

  1. Dalam program di atas kita telah membuat dan membuka file bernama demo dalam mode tulis.
  2. Setelah operasi tulis dilakukan, maka file ditutup menggunakan fungsi fclose.
  3. Kami kembali membuka file yang sekarang berisi data dalam mode membaca. Perulangan while akan dijalankan sampai eof ditemukan. Setelah akhir file ditemukan, operasi akan dihentikan dan data akan ditampilkan menggunakan fungsi printf.
  4. Setelah melakukan operasi pembacaan, file ditutup kembali menggunakan fungsi fclose.

Ringkasan


Bahasa C

  1. Variabel C# dan Tipe Data (Primitif)
  2. C Masukan Keluaran (I/O)
  3. C Penanganan Berkas
  4. File Python I/O
  5. Apacer:Kartu CV110-SD dan CV110-MSD diluncurkan di seluruh dunia
  6. Apacer:seri SSD SV250 kelas industri dengan kecepatan baca/tulis 560 dan 520MB/dtk
  7. acceed:Modul I/O untuk komunikasi data yang dapat diskalakan
  8. Kabel pemutus I/O Raspberry PI dan adaptor plugboard
  9. C - File I/O
  10. C - File Header