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

File dan Aliran C++

Sejauh ini, kami telah menggunakan iostream perpustakaan standar, yang menyediakan cin dan cout metode untuk membaca dari input standar dan menulis ke output standar masing-masing.

Tutorial ini akan mengajarkan Anda cara membaca dan menulis dari file. Ini memerlukan pustaka C++ standar lain yang disebut fstream , yang mendefinisikan tiga tipe data baru

No.No Jenis &Deskripsi Data
1

dari arus

Tipe data ini mewakili aliran file keluaran dan digunakan untuk membuat file dan menulis informasi ke file.

2

ifstream

Tipe data ini mewakili aliran file input dan digunakan untuk membaca informasi dari file.

3

fstream

Tipe data ini mewakili aliran file secara umum, dan memiliki kemampuan aliran dan ifstream yang berarti dapat membuat file, menulis informasi ke file, dan membaca informasi dari file.

Untuk melakukan pemrosesan file dalam C++, file header dan harus disertakan dalam file sumber C++ Anda.

Membuka File

Sebuah file harus dibuka sebelum Anda dapat membaca atau menulisnya. Entah ofstream atau fstream objek dapat digunakan untuk membuka file untuk menulis. Dan objek ifstream digunakan untuk membuka file untuk tujuan membaca saja.

Berikut adalah sintaks standar untuk fungsi open(), yang merupakan anggota objek fstream, ifstream, dan ofstream.

void open(const char *filename, ios::openmode mode);

Di sini, argumen pertama menentukan nama dan lokasi file yang akan dibuka dan argumen kedua open() fungsi anggota mendefinisikan mode di mana file harus dibuka.

No.No Mode Bendera &Deskripsi
1

ios::aplikasi

Tambahkan mode. Semua output ke file itu akan ditambahkan sampai akhir.

2

ios::makan

Buka file untuk output dan pindahkan kontrol baca/tulis ke akhir file.

3

ios::in

Buka file untuk dibaca.

4

ios::out

Buka file untuk menulis.

5

ios::trunc

Jika file sudah ada, isinya akan terpotong sebelum file dibuka.

Anda dapat menggabungkan dua atau lebih nilai ini dengan ATAU ing mereka bersama-sama. Misalnya jika Anda ingin membuka file dalam mode tulis dan ingin memotongnya jika sudah ada, berikut sintaksnya

ofstream outfile;
outfile.open("file.dat", ios::out | ios::trunc );

Dengan cara yang sama, Anda dapat membuka file untuk tujuan membaca dan menulis sebagai berikut −

fstream  afile;
afile.open("file.dat", ios::out | ios::in );

Menutup File

Ketika program C++ berakhir, maka secara otomatis menghapus semua aliran, lepaskan semua memori yang dialokasikan dan tutup semua file yang dibuka. Tetapi selalu merupakan praktik yang baik bahwa seorang programmer harus menutup semua file yang dibuka sebelum program dihentikan.

Berikut adalah sintaks standar untuk fungsi close(), yang merupakan anggota objek fstream, ifstream, dan ofstream.

void close();

Menulis ke File

Saat melakukan pemrograman C++, Anda menulis informasi ke file dari program Anda menggunakan operator penyisipan aliran (<<) sama seperti Anda menggunakan operator itu untuk menampilkan informasi ke layar. Satu-satunya perbedaan adalah Anda menggunakan ofstream atau fstream objek alih-alih cout objek.

Membaca dari File

Anda membaca informasi dari file ke dalam program Anda menggunakan operator ekstraksi aliran (>>) sama seperti Anda menggunakan operator itu untuk memasukkan informasi dari keyboard. Satu-satunya perbedaan adalah Anda menggunakan ifstream atau fstream objek alih-alih cin objek.

Contoh Baca dan Tulis

Berikut ini adalah program C++ yang membuka file dalam mode membaca dan menulis. Setelah menulis informasi yang dimasukkan oleh pengguna ke file bernama afile.dat, program membaca informasi dari file dan menampilkannya ke layar

Demo Langsung
#include <fstream>
#include <iostream>
using namespace std;
 
int main () {
   char data[100];

   // open a file in write mode.
   ofstream outfile;
   outfile.open("afile.dat");

   cout << "Writing to the file" << endl;
   cout << "Enter your name: "; 
   cin.getline(data, 100);

   // write inputted data into the file.
   outfile << data << endl;

   cout << "Enter your age: "; 
   cin >> data;
   cin.ignore();
   
   // again write inputted data into the file.
   outfile << data << endl;

   // close the opened file.
   outfile.close();

   // open a file in read mode.
   ifstream infile; 
   infile.open("afile.dat"); 
 
   cout << "Reading from the file" << endl; 
   infile >> data; 

   // write the data at the screen.
   cout << data << endl;
   
   // again read the data from the file and display it.
   infile >> data; 
   cout << data << endl; 

   // close the opened file.
   infile.close();

   return 0;
}

Ketika kode di atas dikompilasi dan dieksekusi, menghasilkan contoh input dan output berikut

$./a.out
Writing to the file
Enter your name: Zara
Enter your age: 9
Reading from the file
Zara
9

Contoh di atas menggunakan fungsi tambahan dari objek cin, seperti fungsi getline() untuk membaca baris dari luar dan fungsi abaikan() untuk mengabaikan karakter tambahan yang ditinggalkan oleh pernyataan baca sebelumnya.

Penunjuk Posisi File

Keduanya istream dan ostream menyediakan fungsi anggota untuk memposisikan ulang penunjuk posisi file. Fungsi anggota ini adalah seekg ("seek get") untuk istream dan seekp ("seek put") untuk ostream.

Argumen untuk seekg dan seekp biasanya adalah bilangan bulat panjang. Argumen kedua dapat ditentukan untuk menunjukkan arah pencarian. Arah pencarian bisa ios::beg (default) untuk pemosisian relatif terhadap awal aliran, ios::cur untuk pemosisian relatif terhadap posisi saat ini dalam aliran atau ios::end untuk penentuan posisi relatif terhadap akhir aliran.

Pointer posisi file adalah nilai integer yang menentukan lokasi dalam file sebagai sejumlah byte dari lokasi awal file. Beberapa contoh penempatan penunjuk posisi file "get" adalah −

// position to the nth byte of fileObject (assumes ios::beg)
fileObject.seekg( n );

// position n bytes forward in fileObject
fileObject.seekg( n, ios::cur );

// position n bytes back from end of fileObject
fileObject.seekg( n, ios::end );

// position at end of fileObject
fileObject.seekg( 0, ios::end );

Bahasa C

  1. Variabel C++, Literal dan Konstanta
  2. Kelas dan Objek C++
  3. Fungsi teman C++ dan Kelas teman
  4. C Penanganan Berkas
  5. Direktori Python dan Manajemen File
  6. Struktur dan kelas dalam C++
  7. C - File Header
  8. C++ Tanggal dan Waktu
  9. C++ Overloading (Operator dan Fungsi)
  10. Apa itu Mill File?