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

Menguasai File I/O dalam C: Membuat, Membuka, dan Mengelola File

Bab terakhir menjelaskan perangkat input dan output standar yang ditangani oleh bahasa pemrograman C. Bab ini membahas bagaimana programmer C dapat membuat, membuka, menutup file teks atau biner untuk penyimpanan data mereka.

File mewakili urutan byte, terlepas dari apakah itu file teks atau file biner. Bahasa pemrograman C menyediakan akses pada fungsi tingkat tinggi serta panggilan tingkat rendah (tingkat OS) untuk menangani file pada perangkat penyimpanan Anda. Bab ini akan membawa Anda melalui panggilan penting untuk manajemen file.

Membuka File

Anda dapat menggunakan fungsi fopen( ) untuk membuat file baru atau membuka file yang sudah ada. Panggilan ini akan menginisialisasi objek dari tipe FILE, yang berisi semua informasi yang diperlukan untuk mengontrol aliran. Prototipe dari panggilan fungsi ini adalah sebagai berikut −

 FILE *fopen( const char * filename, const char * mode ); 

Di sini, filename adalah string literal, yang akan Anda gunakan untuk menamai file Anda, dan akses mode dapat memiliki salah satu nilai berikut −

Sr.No. Mode & Deskripsi
1

r

Membuka file teks yang sudah ada untuk tujuan membaca.

2

w

Membuka file teks untuk penulisan. Jika tidak ada, maka file baru dibuat. Di sini program Anda akan mulai menulis konten dari awal file.

3

a

Membuka file teks untuk penulisan dalam mode penambahan. Jika tidak ada, maka file baru dibuat. Di sini program Anda akan mulai menambahkan konten ke konten file yang sudah ada.

4

r+

Membuka file teks untuk membaca dan menulis.

5

w+

Membuka file teks untuk membaca dan menulis. Ini pertama-tama memotong file menjadi panjang nol jika ada, atau membuat file jika tidak ada.

6

a+

Membuka file teks untuk membaca dan menulis. Ini membuat file jika tidak ada. Pembacaan akan dimulai dari awal tetapi penulisan hanya dapat ditambahkan.

Jika Anda akan menangani file biner, maka Anda akan menggunakan mode akses berikut sebagai gantinya −

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

Menutup File

Untuk menutup file, gunakan fungsi fclose( ). Prototipe fungsi ini adalah −

 int fclose( FILE *fp ); 

Fungsi fclose(-) mengembalikan nol jika berhasil, atau EOF jika terjadi kesalahan saat menutup file. Fungsi ini sebenarnya mem-flush data yang masih tertunda dalam buffer ke file, menutup file, dan melepaskan memori yang digunakan untuk file. EOF adalah konstanta yang didefinisikan dalam file header stdio.h.

Ada berbagai fungsi yang disediakan oleh pustaka standar C untuk membaca dan menulis file, karakter demi karakter, atau dalam bentuk string dengan panjang tetap.

Menulis File

Berikut adalah fungsi terkesederhana untuk menulis karakter individual ke aliran −

 int fputc( int c, FILE *fp ); 

Fungsi fputc() menulis nilai karakter dari argumen c ke aliran output yang dirujuk oleh fp. Fungsi ini mengembalikan karakter yang ditulis jika berhasil, atau EOF jika terjadi kesalahan. Anda dapat menggunakan fungsi berikut untuk menulis string yang diakhiri null ke aliran −

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

Fungsi fputs() menulis string s ke aliran output yang dirujuk oleh fp. Fungsi ini mengembalikan nilai non-negatif jika berhasil, sebaliknya EOF dikembalikan jika terjadi kesalahan. Anda juga dapat menggunakan fungsi int fprintf(FILE *fp,const char *format, ...) untuk menulis string ke dalam file. Cobalah contoh berikut.

Pastikan Anda memiliki direktori /tmp yang tersedia. Jika tidak, sebelum melanjutkan, Anda harus membuat direktori ini pada mesin Anda.

 #include <stdio.h> main() { FILE *fp; fp = fopen("/tmp/test.txt", "w+"); fprintf(fp, "Ini adalah pengujian untuk fprintf...\n"); fputs("Ini adalah pengujian untuk fputs...\n", fp); fclose(fp); } 

Ketika kode di atas dikompilasi dan dieksekusi, ini membuat file baru test.txt di direktori /tmp dan menulis dua baris menggunakan dua fungsi yang berbeda. Mari kita baca file ini di bagian selanjutnya.

Membaca File

Berikut adalah fungsi terkesederhana untuk membaca satu karakter dari file −

 int fgetc( FILE * fp ); 

Fungsi fgetc() membaca karakter dari file input yang dirujuk oleh fp. Nilai kembalian adalah karakter yang dibaca, atau jika terjadi kesalahan, fungsi ini mengembalikan EOF. Fungsi berikut memungkinkan untuk membaca string dari aliran −

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

Fungsi fgets() membaca hingga n-1 karakter dari aliran input yang dirujuk oleh fp. Fungsi ini menyalin string yang dibaca ke dalam buffer buf, dengan menambahkan karakter null untuk mengakhiri string.

Jika fungsi ini menemukan karakter newline '\n' atau akhir file EOF sebelum mereka telah membaca jumlah karakter maksimum, maka fungsi ini hanya mengembalikan karakter yang dibaca hingga titik tersebut termasuk karakter newline. Anda juga dapat menggunakan fungsi int fscanf(FILE *fp, const char *format, ...) untuk membaca string dari file, tetapi fungsi ini berhenti membaca setelah menemukan karakter spasi pertama.

 #include <stdio.h> main() { FILE *fp; 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); } 

Ketika kode di atas dikompilasi dan dieksekusi, ini membaca file yang dibuat di bagian sebelumnya dan menghasilkan hasil berikut −

 1 : Ini 2: pengujian untuk fprintf... 3: Ini adalah pengujian untuk fputs... 

Mari kita lihat lebih detail tentang apa yang terjadi di sini. Pertama, fscanf() hanya membaca Ini karena setelah itu, ia menemukan spasi, pemanggilan kedua adalah untuk fgets() yang membaca baris yang tersisa hingga menemukan akhir baris. Akhirnya, pemanggilan terakhir fgets() membaca baris kedua sepenuhnya.

Fungsi I/O Biner

Ada dua fungsi yang dapat digunakan untuk input dan output biner −

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

Kedua fungsi ini harus digunakan untuk membaca atau menulis blok memori - biasanya array atau struktur.


Bahasa C

  1. Menguasai Input dan Output C (I/O): scanf() dan printf() Dijelaskan
  2. Penanganan File C: Menguasai I/O dengan fopen, fprintf, fread, dan fseek
  3. Python File I/O: Menguasai Operasi File, Membaca, Menulis, dan Manajemen
  4. Axiomtek IPS960‑511‑PoE: Pengontrol Visi Industri Rugged All-in-One untuk Inspeksi Industri
  5. acceed EDAM-4200 Series: Modul I/O Terintegrasi untuk Komunikasi Data Terukur dan Andal
  6. Menguasai Fungsi C: Struktur, Deklarasi, dan Praktik Terbaik
  7. Memahami File Header C: Tipe, Penggunaan, dan Praktik Terbaik
  8. Kartu I/O Dijelaskan: Cara Kerja dan Mengapa Penting
  9. Mengekspor Data dari MATLAB: Format File & Teknik
  10. Menguasai File I/O C#: Membaca, Menulis, dan Mengelola Aliran