Bismillah…
Dalam C++, IOstream adalah sebuah libraray yang sangat sering kita gunakan saat membuat program generik yang melibatkan input dan output dari user menggunakan streams)1.
Dalam library ini, ada beberapa kelas yang dapat kita gunakan untuk mengolah input/output ke string yakni kelas stringstream (istringstream
, stringstream
dan ostringstream
). Dengan menggunakan stringstream ini, kita dapat melakukan konversi angka atau type lainnya dengan ke string atau sebaliknya (dengan menggunakan operator overload stream <<
atau >>
). Untuk dapat menggunakan stringstream ini, kita perlu meng-include-kan #include <sstream> ke dalam program.
Konversi Angka ke String.
Untuk konversi angka ke string (baik integer, float maupun yang lainnya), berikut adalah contoh programnya:
Untuk mengkonversi angka ke string, kita membutuhkan objek dari kelas ostringstream kemudian menginisialisasinya dengan isi dari variabel angka yang akan kita konersi. Dengan memanggil metthode str(), angka yang ada dalam objek convert tersebut akan dikonversi ke string. Jika dijalankan, maka variabel hasil akan diinisialisasi dengan nilai "145" sesuai dengan isi variabel angka.
Konversi String ke Angka.
Untuk konversi string ke agka kita membutuhkan objek dari kelas istringstream untuk mengolah inputan untuk string. Berikut adalah contoh programnya:
Dalam program di atas, objek istringstream yakni convert diinisialisasi dengan string pada istringstream convert(text)
. Pada saat konversi, juga diperlukan pengecekan apakah konversi berhasil atau tidak. ( if (!
) Jika konversi gagal, maka hasil di berikan nilai 0. Pemberian nilai pada variabel hasil jika konversi berhasil terjadi pada convert >> hasil
.
Jika dijalankan hasilnya akan menjadi:
Semoga bermanfaat…
___________________________________________________________________________
1). Sebuah stream merupakan sebuah abstraksi yang merepresentasikan sebuah perangkat dimana input dan output diproses. Stream-stream ini biasanya terasosiasi dengan peangkat seperti Keyboard, hardisk, monitor, console atau masih banyak lagi lainnya.
Nur Elly Saputra said:
sayang . di C++ tidak ada fasilitas auto import seperti java misalkan seperti ini.
import java.swing.*;
nah kalau misalkan kita enggak tahu paket mana yang di import kan tinggal ditambahkan * di importnya.
mungkin kalau c++ bisa begini mas hayi
#include
tapi kenapa enggak dirancang seperti itu , lebih simpel kayaknya yah ||^__||||
maaf mas kalau saya orangnya agak2 cerewet
Hayi Chan said:
AFAIK ga ada kyk gitunya tujuan na salah satu yakni untuk menghemat memory dan ukuran program. Apalagi kalau program akan dikompilasi secara static, kalo semuanya di include kan sampe file2 yang tidak dibutuhkan, maka kebutuhan/dependency terhadap library-pun akan semakin besar dan ukuran dari program akan membengkak jika dikompilasi secara static.
CMIIW.
achmad husaini said:
Assalamu’alaikum wr. wb.
mau tanyak nich, bagaimana menghitung penjumlahan dua buang angka yang nilainya mencapai triliunan pada C++?
contoh
angka1=3254876451465323130
angka2=3659854525665625356
hasil=angka1+angka2=….
thanks pencerahannya,
izin copy pagenya.
wAssalamu’alaikum wr. wb.
Hayi Chan said:
Wa’alaikumussalam warohmatullah….
AFAIK, tergantung dari jenis dan signed-nya….. Kalo angkanya sampai jutaan atau bahkan milyaran, sebaiknya ga usah pake signed, dibuat agar unsigned dan berjenis long.
Selain itu, bergantung dari arsitektur systemnya, semisal untuk type data unsigned long int pada arsitektur i386 (32bit) range dari 0 s/d 4294967295 sengkan pada arsitektur x86-64 (64bit) dari 0 s/d 18446744073709551615.
Tapi kalo memang dibutuhkan, antum bisa pakai yang lebih ekstrim dikit (hehe…) pake unsigned long long int. (long-nya dua kali). Misalkan sebagai contoh:
…
unsigned long long int a = 3254876451465323130;
unsigned long long int b = 3659854525665625356;
cout << a+b << endl;
…
Pada system saya yg i386 hasilnya menjadi: 6914730977130948486
CMIIW.
Sastro said:
Maaf gan, saya pemula, mo tanya.
Bisa ga satu variable (di layar tampilan) dapat di input int maupun char ?
Klo bisa gimana cara ?
Matur suwun…