Rabu, November 20, 2019

Fungsi dari fflush(stdin) pada bahasa C

fflush() umumnya digunakan hanya untuk output stream. Fungsinya adalah untuk membersihkan (atau flush) output buffer dan memindahkan data buffer menuju console (dalam kasus stdout) atau disk (pada kasus file output stream). Berikut adalah contoh dari penggunaan sintak fflush.

fflush(FILE *ostream);

Ostream merujuk pada output stream atau update yang recent operasinya tidak di-input, fungsi fflush membuat data apapun yang tidak tertulis untuk stream akan dikirim ke host environtment untuk ditulis sebagai file, jika tidak maka behavior tidak akan definsikan.

Apakah fflush dapat digunakan untuk input stream seperti stdin?
Sesuai dengan standard C, hal tersebut merupakan behavior yang tidak terdefinisi untuk menggunakan fflush(sdin). Namun demikian beberapa kompilator seperti Microsoft Visual Studio dapat memberikan akses untuk hal tersebut. Bagaimana cara menggunakannya pada kompilator? Ketika mengambil string input dengan spasi, buffer tidak akan dihapus untuk input selanjutnya dan menganggap input sebelumnya adalah sama. Untuk menyelesaikan permasalahan tersebut maka digunakan fflush(stdin) untuk membersihkan stream atau buffer.

Input:
geeks 
geeksforgeeks

Output:
geeks
geeks

Kode program sebelumnya hanya memberikan input tunggal dan mengembalikan nilai sama untuk input kedua. Alasan hal ini dapat terjadi karena nilai string telah disimpan pada buffer, artinya nilai stream belum dibersihkan dengan benar seperti yang diharapkan pada nilai string beserta spasi atau baris baru. Sehingga, untuk mengatasi situasi tersebut fflush(stdin) digunakan.

Input:
geeks
geeksforgeeks

Output:
geeks
geeksforgeeks

Apakah suatu pilihan yang baik untuk menggunakan fflush(stdin)?
Meskipun menggunakan "fflush(stdin)" setelah statement "scanf()" juga lakukan pembersihan pada beberapa kompilator, sangat tidak direkomendasikan untuk menggunakannya sebagai behavior tidak terdefinisi oleh bahasa standar.





Related Posts

Fungsi dari fflush(stdin) pada bahasa C
Oleh

"semoga yang memberikan komentar diberikan berkah kebaikan dari Allah, dijauhkan dari kejahatan, dan diberikan pahala ilmu dan amal jariyah dari sepenggal kata yang ia tinggalkan amiin :) "