Menu Home

Penggunaan Library String Stream di C++

library string stream <sstream> digunakan bersamaan dengan library string <string>. trus buat apa tu library? cara makainya gimana?

library <string> digunakan agar tipe data string dapat digunakan, sehingga, ga perlu lagi makai tipe data char[x] atau char*.

kalo library <sstream> digunakan untuk merubah semua tipe data yang diinputkan user ke string, dan merubah tipe string ke data lain.

awalnya.. liatin dulu nih skrip:

#include <iostream>
#include <string>
int main()
{
int angka;
string nama;
cout << "masukkan angka: ";
cin >> angka;
cout << "nama (nama depan dan belakang): ";
cin >> nama;
cout << "angka yang dimasukkan: " << angka << ", nama anda: " << nama << endl;
return 0;
}

hasilnya akan terlihat seperti ini:

masukkan angka: 12
nama (nama depan dan belakang): bima janur
angka yang dimasukkan: 12, nama anda: bima

kalau menggunakan ‘cin’ maka akan terjadi seperti ini. pada masukan nama depan dan belakang, akan terjadi kesalahan. nama belakang (nama setelah spasi) tidak terbaca oleh program.

Setelah beberapa kali pencarian di google, akan menemukan solusi dengan penggunaan ‘getline()’.

mari kita coba:

#include <iostream>
#include <string>
int main()
{
int angka;
string nama;
cout << "masukkan angka: ";
cin >> angka;
cout << "nama (nama depan dan belakang): ";
getline(cin,nama);
cout << "angka yang dimasukkan: " << angka << ", nama anda: " << nama << endl;
return 0;
}

jika dijalankan akan keluar hasil seperti ini:

masukkan angka: 12
nama (nama depan dan belakang): angka yang dimasukkan: 12, nama anda:

masih ada kesalahan, setelah masukan angka, masukkan nama depan dan belakang akan diabaikan. nah, untuk menyelesaikan masalah ini kita gunakan library <sstream>

#include <iostream>
#include <string>
#include <sstream>
int main()
{
int angka;
string nama;
string titip;
stringstream stream;
cout << "masukkan angka: ";
getline(cin,nama);
stream << titip;
stream >> angka;

cout << "nama (nama depan dan belakang): ";
getline(cin,nama);
cout << "angka yang dimasukkan: " << angka << ", nama anda: " << nama << endl;
return 0;
}

hasilnya:

masukkan angka: 12
nama (nama depan dan belakang): bima janur
angka yang dimasukkan: 12, nama anda: bima janur

sekarang dengan menggunakan stringstream, data angka dan data nama depan dan belakang telah terbaca oleh komputer.

BONUS:

nih itung-itung bonus akhir tahun… hehe..

untuk mempersingkat skrip di atas. ga perlu lagi deklarasikan variabel untuk stringstream. nih skripnya:

#include <iostream>
#include <string>
#include <sstream>
int main()
{
int angka;
string nama;
string titip;
cout << "masukkan angka: ";
getline(cin,nama);
stringstream(titip) >> angka;
cout << "nama (nama depan dan belakang): ";
getline(cin,nama);
cout << "angka yang dimasukkan: " << angka << ", nama anda: " << nama << endl;
return 0;
}

semoga berguna….:grin:

Categories: Komputer & Internet Pemrograman Teori

Tagged as:

Bima J.

2 replies

Komentarnya mana?

%d bloggers like this: