Home

Minggu, 13 Mei 2012

C++ : Cin & Getline

Apa perbedaan cin & getline ?
Secara gampangnya perbedaannya adalah..
cin -> Mengambil kata/karakter/angka dari User sebelum tanda spasi atau enter ;)
getline -> Mengambil string/kalimat dari User termasuk spasi



















Example for cin:
cout<<"input: "; cin>>input;
Jika dijalankan, dan ketika user melakukan input lebih dari 1 kata maka yang diterima hanyalah 1 kata saja. Karena cin hanya mengambil sebelum spasi saja. kecuali ada 2 cin yang disediakan.
cout<<"input: "; cin>>input1; cin>>input2;
Jika kejadiannya seperti yang diatas maka yang terjadi adalah setelah spasi maka sisanya masuk ke dalam input 2. contohnya anda melakukan input "Jack Riddle" maka jika kita melakukan print yang muncul adalah input1 = Jack & input2 = Riddle.
PS. cin masi banyak kelemahannya. Karena cin akan meninggalkan karakter newline (\n) di dalam stream. Dan karena karakter newline tersebut tertinggal, maka input selanjutnya akan tidak terbaca, karena kompiler membaca bahwa input sudah dimasukkan, dan berakibat input tidak dapat diambil dari user. ini sering terjadi ketika menggunakan cin sebelum getline. Maka dari itu kita mempergunakan cin.ignore untuk melakukan ignore terhadap newline (\n) di dalam stream tersebut ;)

Example for cin & getline:
cout<<"input: "; cin>>input1;
cout<<"input2: "; cin.getline(input2,30);
ketika dijalankan maka kita tidak akan bsa melakukan input terhadap input2 karena cin masi meninggalkan newline di stream. maka dari itu kita membutuhkan fungsi ignore untuk mengignore newline tersebut ;)
cout<<"input: "; cin>>input1;
cout<<"input2: "; cin.ignore(); cin.getline(input2,30);
Cin jarang digunakan untuk melakukan input string karena string lebih dominan dengan menggunakan spasi. Cin lebih sering digunakan untuk fungsi2 yang menggunakan numerik. ;) tee - hee.. Oh iya jangan melakukan input kepada input1 dengan menggunakan spasi karena akan memberikan kesan seolah terjadi error namun tidak xD Kamu pasti juga tau knapa ;) sekian :D
Source Info

Tidak ada komentar:

Posting Komentar