twitter
    Find out what I'm doing, Follow Me :)

C++ stream input/output

Bahasa C memiliki rutin-rutin untuk proses input/output yang dideklarasikan di header file stdio.h. proses input/output versi C ini masih dapat digunakan di C++. Namun demikian C++ mengenalkan teknik baru untuk proses input/output, yaitu yang dinamakan iostreams atau disingkat menjadi streams saja. Hampir semua fungsi yang terdapat di stdio.h dapat dikonversikan ke dalam bentuk streams. Kelebihan streams dibandingkan input/output C adalah fleksibilitasnya dalam melakukan format input/output dan juga kemampuannya yang mendukung konsep operator berbeban lebih (overloaded operator).

Apa itu Streams ?

Streams adalah suatu abstraksi untuk menangani aliran data dari suatu sumber (producer) ke tujuan (consumer) lain. Baik sumber atau tujuan dapat berupa buffer di memori, string, file atau layar monitor. C++ mendeklarasikan kelas untuk strem di beberapa header file, yaitu;

* iostream.h (I/O umum)
* constrea.h (I/O ke console)
* strstrea.h (I/O ke string)
* fstream.h (I/O ke file)

Format pada Output dengan fungsi

Stream output dapat diformat seperti halnya output pada fungsi printf. Untuk mengubah format output, yang harus dilakukan adalah mengubah beberapa bit flag yang ada di kelas ios. Ada beberapa macam flag yang terdapat di kelas ios yaitu :

Daftar Format Pada Output

skipws Mengabaikan karakter spasi putih (white space) pada saat proses input

left Mengatur output menjadi rata kiri

right Mengatur output menjadi rata kanan

internal Output disisipi karakter pengisi (padding character) setelah tanda positif atau tanda basis bilangan

dec Menampilkan bilangan dalam basis desimal

oct Manampilkan bilangan dalam basis oktal

hex Manampilkan bilangan dalam basis heksadesimal

showbase Menampilkan basis bilangan saat suatu bilangan ditampilkan (untuk heksadesimal dengan tambahan “0x” dan untuk oktal dengan tambahan “O”)

showpoint Menunjukan tanda titik pada output bilangan real

uppercase Membuat output bilangan heksadesimal menjadi huruf kapital

showpos Menunjukan tanda ‘+’ pada output bila suatu bilangan lebih dari 0

scientific Menggunakan cara penulisan eksponensial untuk bilangan real (format : xxxE()xxx)

fixed Menggunakan format bilangan desimal untuk bilangan real

unitbuf Mengosongkan semua stream

stdio Mencegah masalah yang bisa terjadi bila digunakan stream dan stdio secara bersamaan

Sekilas tentang Flag

Flag merupakan sekumpulan bit-bit yang masing-masing bit melambangkan keadaan tertentu. Contoh yang paling sederhana adalah flag 1 bit yang hanya melambangkan keadaan nyala (“1”) atau padam (“0”).

Format Output yang lain

format pada output dengan fungsi-fungsi yang sering digunakan antara lain :

- int width (int) : fungsi ini digunakan untuk mengubah lebar output yang akan ditampilkan
- char fill (char) : fungsi ini digunakan untuk mengubah karakter pengisi (padding charakter). Karakter pengisi adalah salah satu karakter ASCII yang dituliskan bila output yang diformat lebih besar daripada lebar yang ditentukan dengan fungsi width
- int precision (int) : fungsi ini digunakan untuk mengubah derajat ketelitian bilangan real (floating point) yang akan ditampilkan

Output pada String

Ada beberapa format yang dapat dilakukan pada string dengan fasilitas stream, yaitu :

· Lebar output dapat diubah dengan memanggil fungsi width diikuti argumen lebar yang dikehendaki.

· Alignment (rata kiri atau rata kanan) dapat diubah dengan memanggil fungsi setf atau unsetf diikuti argumen ios::left atau ios::right.

· Karakter pengisi (padding character) dapat diubah dengan memanggil fungsi fill diikuti argumen karakter yang akan digunakan sebagai karakter pengisi.

Output pada Bilangan Bulat

Yang dimaksud bilangan bulat disini adalah tipe short int, int, unsigned int, long, unsigned long. Ada beberapa format yang dapat dilakukan pada bilangan bulat dengan fasilitas stream, yaitu :

· Basis bilangan bulat (desimal, heksadesimal atau oktal) dapat diubah dengan memanggil fungsi setf atau unsetf diikuti argumen ios::dec, ios::hex atau ios::oct.

· Lebar output yang diformat dapat diubah dengan memanggil fungsi width diikuti argumen lebar yang dikehendaki.

· Alignment (rata kiri atau rata kanan) dapat diubah dengan memanggil fungsi setf atau unsetf diikuti argumen ios::left atau ios::right.

· Karakter pengisi (padding character) dapat diubah dengan memanggil fungsi fill diikuti argumen karakter yang akan digunakan sebagai karakter pengisi.

· Tampilan tanda ‘+’, diubah dengan memanggil fungsi setf atau unsetf diikuti argumen ios::showpos.

· Tampilan huruf (huruf kapital atau huruf kecil) pada bilangan heksadesimal, diubah dengan memanggil fungsi setf atau unsetf diikuti argumen ios::uppercase.

Output pada Bilangan Real

Yang dimaksud bilangan real disini adalah tipe data float, double dan long double. Ada beberapa format yang dapat dilakukan pada bilangan real dengan fasilitas stream, yaitu :

· Derajat ketelitian (precision) dapat diubah dengan memanggil fungsi precision diikuti argumen jumlah ketelitian angka yang diinginkan.

· Lebar output dapat diubah dengan memanggil fungsi width diikuti argumen lebar yang dikehendaki.

· Format bilangan real (fixed atau scientific) dapat diubah dengan memanggil fungsi setf diikuti argumen ios::fixed atau ios::scientific.

· Alignment (rata kiri atau rata kanan) dapat diubah dengan memanggil fungsi setf atau unsetf diikuti argumen ios::left atau ios::right.

· Karakter pengisi (padding character) dapat diubah dengan memanggil fungsi fill diikuti argumen karakter yang akan digunakan sebagai karakter pengisi.

· Tampilan tanda ‘+’, diubah dengan memanggil fungsi setf atau unsetf diikuti argumen ios::showpos.

· Tampilan tanda ‘.’ Bila terdapat angka dibelakang koma, diubah dengan memanggil fungsi setf atau unsetf diikuti argumen ios::showpoint.


Daftar manipulator untuk I/O ke console


clreol
Menghapus sampai dengan akhir baris dari jendela teks

delline
Menghapus satu baris di jendela teks

highvideo
Memilih karakter dengan intensitas terang

insline
Menyisipkan satu baris kosong di jendela teks

lowvideo
Memilih karakter dengan intensitas rendah

normvideo
Memilih karakter dengan intensitas normal

setattr (int)
Memberi nilai atribut layar

setbk (int)
Memberi nilai warna latar belakang

setclr (int)
Memberi nilai warna karakter

setcrstype (int)
Mengubah bentuk kursor

setxy (int, int)
Menempatkan kursor di posisi tertentu

2 comments:

adi said...

hm... masih belum ngerti nih... contoh programnya kayak gimana..

LOVELYZ TRILOGY said...

maksih min
Lampu servis hp