Pembacaan String OPERASI FILE

408 Direktorat Pembinaan SMK | 2008 Tabel 12.2.Open Flag FLAG ARTI ios::app menambahkan data ke akhir output file. ios::ate Pergi ke akhir file ketika dibuka. ios::in Membuka untuk masukan harus diberikan kepada fungsi buka ifstream variabel. ios::out Buka file untuk output harus diberikan kepada fungsi anggota buka ofstream variabel. ios::binary File binary jika tidak ada, maka file dibuka sebagai file ASCII. ios::trunc Membuang isi yang ada saat membuka file untuk menulis. ios::nocreate Mengalami gagal jika file tersebut tidak ada. Output file saja. Membuka sebuah file input selalu gagal jika tidak ada file.. ios::noreplace Jangan menimpa file yang ada. Jika file ada, menyebabkan rusak ketika buka.  Prot, file protection dimana hal ini tergantung pada sistem operasi yang digunakan untuk menentukan mode proteksi file tersebut. Misalnya pada UNIX proteksi default sampai 0644 untuk bacatulis sendiri, baca pada group maupun penulisan lainnya, sedangkan MS-DOSwindows defaultnya adalah 0 dalam kondisi file normal. Perhatikan contoh pernyataan dibawah ini: ofstream out_file data.new , ios::out| ios::binary| ios::nocreate| ios::app; potongan pogram diatas dapat diartikan digunakan menambahkan ios::app data biner menggunakan ios::binary, kalau file sudah ada atau telah ditemukan filenya ios::nocreate sedangkan data.new merupakan nama file yang akan ditulis. Pada contoh dibawah terdiri dari fungsi pendek tersebut digunakan untuk menulis pesan pada sebuah file catatan. Sesuatu yang pertama yang dilakukan adalah membuka fungsi untuk operasi output ios::out, menambahkan catatan ios::app, dengan menulis dari permulaan sampai akhir penulisan ios::ate. Setelah fungsi tersebut menulis pesan serta terahir menutup file. Fungsi ini telah dirancang dengan sederhana, dimana hal tersebut juga tidak memperdulikan mengenai efisiensi dan sebagai hasil dari fungsi adalah sangat tidak efisien. Masalah tersebut dibuka dan ditutup setiap saat memanggil log_message. Membuka file merupakan sebuah operasi yang cukup mahal, dan sesuatu juga harus mempunyai kecepatan lebih tinggi, jika akan membuka file hanya sekali dan mengingatkan tersebut. 2008 | Direktorat Pembinaan SMK 409 Program 12.2. include iostream include fstream using namespace std; void log_messageconst string msg { ofstream out_file data.log , if out_file.bad out_file msg endl; return; }

12.6. Routin-routin Konversi File

Untuk menulis angka pada printer atau sebuah terminal, programer harus mengkonversi angka ke karakter. Sebuah printer hanya bisa mengerti karakter bukan angka. Sebagai contoh 567 harus dikonversi menjadi tig karake yaitu: “5”, ”6”, dan “7” dan kemudian dicetak. Operator digunakan untuk mengkonversi data menuju karakter dan meletakanya dalam sebuah file. Fungsi ini adalah sangat flexibel. Hal tersebut mengubah integer sederhana menjadi variabel tetap atau yang sesuai dengan stering dalam bentuk bilangan hexadesimal, oktal atau desimal dengan penulisan rata pada margin kiri atau kanan. Jika selama menulis program tidak melakukan pengaturan apapun maka hasil konversi dalam kondisi default. Keanggotan fungsi setf dan unsetf digunakan untuk mengatur kondisi flag menjadi berlogika set “1 atau clear “0” dimana hal ini digunakan kendali proses konversi. Secara umum bentu penulisan fungsi adalah sebagai berikut: file_var.setfflags; Set flags file_var.unsetfflags; Clear flags Tabel dibawah ini merupakan daftar flag dan penjelasnya. Tabel 12.3. IO konversi flag FLAG ARTI ios::skipws loncati karakter yang mendahului spasi sebagai masukan. ios::left Output sebelah kiri dibenarkan. ios::right Output seblah kanan dibenarkan. ios::internal Numerik keluaran adalah memasukkan padded oleh karakter yang mengisi antara tanda atau dasar karakter dan jumlah itu sendiri. 410 Direktorat Pembinaan SMK | 2008 ios::boolalpha Gunakan versi karakter yang benar dan salah untuk input dan output. ios::dec Output dalam dasar angka 10, format desimal. ios::oct Keluaran angka dengan format 8 angka oktal. ios::hex Output dalam format angka 16, heksadesimal. ios::showbase Mencetak indikator inti pada setiap awal nomor. Misalnya, angka heksadesimal yang diawali dengan 0x. ios::showpoint Menunjukkan titik desimal untuk semua angka floating‐point apakah ia dibutuhkan. ios::uppercase Ketika konversi heksadesimal angka, menunjukkan angka AF sebagai huruf besar. ios::showpos Menempatkan tanda positif sebelum semua nomor. ios::scientific Mengkonversi semua angka floating‐point untuk notasi ilmiah pada output. ios::fixed Mengkonversi semua floating‐point nomor ke titik tetap pada output. ios::unitbuf Buffer output. Jika pada saat mnulis program menginginkan keluaran berupa format bilangan hexadesimal, maka yang harus dikerjakan adalah menambah dengan menulis potongan program dibawah ini: number = 0x3FF ; cout Dec: number \n; cout.setf ios::hex; cout Hex: number \n; cout.setf ios::dec; ketika di”run”, maka pprogram akan menghasilkan keluaran sebagai berikut: Dec: 1023 Hex: 3ff Ketika konversi angka ke karakter dilakukan, maka fungsi keanggotaannya ditulis: int file_var.widthint size; suatu saat output harus ditentukan sesuai dengan jumlah karakter yang digunakan. Sebagai contoh misalnya sejumlah 3 angka, secara umum dikonversi menjadi karakter string “3”. Jika diatur sampai empat, maka hasilnya menjadi dimana menunjukan satu ruang karakter. Perhatikan fungsi dibawah ini: int file_var.precisionint digits; pernyataan program diatas digunakan untuk mengatur berapa banyak angkat yang akan dimunculkan setelah tanda koma ,. Dan kemudian menuliskan fungsi seperti dibawah ini: char file_var.fillchar pad;