Operator Input Dan Output Pada C++

|| || || Leave a komentar

Sampai saat ini, program contoh dari bagian sebelumnya diberikan sedikit interaksi dengan pengguna, jika ada sama sekali. Menggunakan standard input dan output perpustakaan, kita akan dapat berinteraksi dengan pengguna dengan mencetak pesan pada layar dan mendapatkan masukan pengguna dari keyboard.C + + menggunakan abstraksi yang nyaman disebut aliran untuk melakukan operasi input dan output dalam sekuensial media seperti layar atau keyboard. Sebuah stream adalah sebuah objek di mana sebuah program dapat menyisipkan atau karakter ekstrak ke / dari itu. Kami tidak benar-benar perlu peduli tentang banyak spesifikasi tentang media fisik yang terkait dengan sungai - kita hanya perlu tahu akan menerima atau memberikan karakter secara berurutan.Standar C + + perpustakaan termasuk file header iostream, di mana input dan output standar objek aliran dinyatakan.Standar Output (cout)Secara default, output standar dari sebuah program adalah layar, dan C + + sungai objek didefinisikan untuk mengakses itu adalah pengadilan.cout yang digunakan bersama dengan operator penyisipan, yang ditulis sebagai << (dua "kurang dari" tanda-tanda).
cout << "Output kalimat"; / / output cetakan kalimat di layarcout << 120; / / mencetak nomor 120 di layarcout << x; / / mencetak isi dari x pada layar


Menyisipkan operator << data yang mengikutinya ke dalam aliran mendahuluinya. Dalam contoh di atas itu dimasukkan Output kalimat string konstan, x 120 numerik dan variabel konstan ke dalam output stream cout standar. Perhatikan bahwa kalimat dalam instruksi pertama tertutup antara tanda kutip ganda (") karena merupakan konstanta string karakter. Setiap kali kita ingin menggunakan string konstan karakter kita harus menyertakan mereka di antara tanda kutip ganda (") sehingga mereka dapat dengan jelas dibedakan dari nama variabel. Sebagai contoh, kedua kalimat memiliki hasil yang sangat berbeda:
cout << "Hello"; / / mencetak Hellocout << Hello; / / mencetak isi dari variabel HelloOperator penyisipan (<<) dapat digunakan lebih dari sekali dalam satu pernyataan:cout << "Hello," << "I am" << "C + + pernyataan";Pernyataan terakhir ini akan mencetak pesan Hello, I am a C + + pernyataan di layar. Pemanfaatan mengulangi operator penyisipan (<<) ditunjukkan ketika kita ingin mencetak kombinasi dari variabel dan konstanta atau lebih dari satu variabel:cout << "Halo, saya" << umur << "tahun dan kode pos saya adalah" << kode pos;Jika kita mengasumsikan usia variabel mengandung nilai 24 dan variabel kode pos 90064 mengandung output dari pernyataan sebelumnya akan menjadi:Halo, saya 24 tahun dan saya adalah kode pos 90064Adalah penting untuk memperhatikan cout yang tidak menambahkan satu baris setelah output kecuali kita secara eksplisit menunjukkan hal itu, oleh karena itu, kalimat-kalimat berikut:
cout << "Ini adalah sebuah kalimat.";cout << "Ini adalah kalimat lain.";akan ditampilkan pada satu layar setelah yang lain tanpa istirahat garis antara mereka:Ini adalah sentence.This adalah kalimat lain.meskipun kita telah menuliskannya dalam dua sisipan yang berbeda ke pengadilan. Dalam rangka untuk melakukan satu baris pada output kita harus secara eksplisit memasukkan karakter baru-line ke pengadilan. Dalam C + + karakter baru-line dapat ditetapkan sebagai \ n (backslash, n):
cout << "Pertama kalimat \ n.";cout << "Kedua kalimat \ nThird kalimat..";Hal ini menghasilkan output sebagai berikut:Pertama kalimat.Kedua kalimat.Ketiga kalimat.Selain itu, untuk menambahkan baris-baru, Anda juga dapat menggunakan manipulator endl. Sebagai contoh:
cout << "kalimat pertama." << Endl;cout << "Kedua kalimat." << Endl;akan mencetak:Pertama kalimat.Kedua kalimat.Manipulator endl menghasilkan karakter newline, persis seperti masuknya '\ n' tidak, tetapi juga memiliki perilaku tambahan bila digunakan dengan aliran buffer: buffer memerah. Pokoknya, cout akan menjadi aliran unbuffered dalam banyak kasus, sehingga Anda umumnya dapat menggunakan kedua \ n karakter escape dan manipulator endl dalam rangka untuk menentukan baris baru tanpa perbedaan dalam perilakunya.Standard Input (cin).Perangkat input standar biasanya keyboard. Penanganan standar input di C + + dilakukan dengan menerapkan operator overload ekstraksi (>>) pada cin stream. Operator harus diikuti oleh variabel yang akan menyimpan data yang akan diambil dari sungai. Sebagai contoh:
int usia;cin >> usia;Pernyataan pertama menyatakan sebuah variabel bertipe int disebut usia, dan yang kedua menunggu input dari cin (keyboard) untuk menyimpannya dalam variabel integer.cin hanya dapat memproses input dari keyboard sekali tombol RETURN telah ditekan. Oleh karena itu, bahkan jika Anda meminta satu karakter, ekstraksi dari cin tidak akan memproses input sampai user menekan RETURN setelah karakter telah diperkenalkan.Anda harus selalu mempertimbangkan jenis variabel yang Anda gunakan sebagai wadah dengan cin ekstraksi. Jika Anda meminta sebuah integer Anda akan mendapatkan sebuah integer, jika Anda meminta karakter Anda akan mendapatkan karakter dan jika Anda meminta string karakter Anda akan mendapatkan sebuah string karakter./ / I / o Contoh# Includemenggunakan namespace std;int main (){
  
int i;
  
cout << "Masukkan nilai integer:";
  
cin >> i;
  
cout << "Nilai yang Anda masukkan" << i;
  
cout << "dan double adalah" << i * 2 << "\ n.";
  
return 0;}Masukkan nilai integer: 702Nilai yang Anda masukkan 702 dan ganda adalah 1404.Pengguna program dapat menjadi salah satu faktor yang menghasilkan kesalahan bahkan dalam program sederhana yang menggunakan cin (seperti yang kita lihat). Karena jika Anda meminta nilai integer dan pengguna memperkenalkan nama (yang umumnya adalah string karakter), hasilnya dapat menyebabkan program Anda untuk misoperate karena tidak apa yang kita harapkan dari pengguna. Jadi bila Anda menggunakan input data yang diberikan oleh cin ekstraksi Anda akan harus percaya bahwa pengguna program Anda akan bersikap kooperatif dan bahwa ia / dia tidak akan memperkenalkan / nya namanya atau yang serupa ketika nilai integer diminta. Sedikit ke depan, ketika kita melihat kelas stringstream kita akan melihat solusi yang mungkin untuk kesalahan yang dapat disebabkan oleh jenis input pengguna.Anda juga dapat menggunakan cin untuk meminta lebih dari satu input datum dari pengguna:cin >> a >> b;adalah setara dengan:
cin >> a;cin >> b;Dalam kedua kasus, pengguna harus memberi dua data, satu untuk satu dan lain variabel untuk variabel b yang mungkin dipisahkan oleh pemisah kosong yang valid: spasi, karakter tab atau baris baru.cin dan stringKita dapat menggunakan cin untuk mendapatkan string dengan operator ekstraksi (>>) seperti yang kita lakukan dengan variabel tipe data dasar:cin >> mystring;Namun, seperti yang telah dikatakan, cin ekstraksi berhenti membaca secepat olah menemukan ruang kosong karakter apapun, sehingga dalam kasus ini kita akan bisa mendapatkan hanya satu kata untuk setiap ekstraksi. Perilaku ini mungkin atau mungkin tidak apa yang kita inginkan, misalnya jika kita ingin mendapatkan sebuah kalimat dari pengguna, operasi ekstraksi ini tidak akan berguna.Dalam rangka untuk mendapatkan seluruh baris, kita dapat menggunakan getline fungsi, yang merupakan cara yang lebih dianjurkan untuk mendapatkan input pengguna dengan cin:
/ / Cin dengan string# Include# Include <string>menggunakan namespace std;int main (){
  
string mystr;
  
cout << "Siapa nama Anda?";
  
getline (cin, mystr);
  
cout << "Hello" << mystr << "\ n.";
  
cout << "Apa tim favorit Anda?";
  
getline (cin, mystr);
  
cout << "Aku suka" << mystr << "terlalu \ n!";
  
return 0;}Siapa nama Anda? Juan SoulieHello Juan Soulie.Apa tim favorit Anda? Para IsotopSaya suka The Isotop juga!Perhatikan bagaimana dalam kedua panggilan untuk getline kita menggunakan string yang sama identifier (mystr). Apa program ini tidak dalam panggilan kedua adalah dengan mengganti konten sebelumnya dengan yang baru yang diperkenalkan.stringstreamThe File header standar mendefinisikan sebuah kelas yang disebut stringstream yang memungkinkan string berbasis objek yang akan diperlakukan sebagai sebuah sungai. Dengan cara ini kita dapat melakukan ekstraksi atau penyisipan operasi dari / ke string, yang terutama berguna untuk mengkonversi string ke nilai-nilai numerik dan sebaliknya. Sebagai contoh, jika kita ingin mengekstrak integer dari string kita bisa menulis:
string mystr ("1204");int Myint;stringstream (mystr) >> Myint;Ini menyatakan sebuah objek string dengan nilai "1204", dan obyek int. Kemudian kita menggunakan stringstream konstruktor untuk membangun sebuah objek dari jenis ini dari objek string. Karena kita dapat menggunakan benda-benda stringstream seolah-olah mereka sungai, kita dapat mengekstrak integer dari itu seperti yang kita akan dilakukan pada cin dengan menerapkan extractor operator (>>) itu diikuti oleh variabel bertipe int.Setelah potongan kode ini, variabel Myint akan berisi nilai numerik 1204.
/ / Stringstreams# Include# Include <string># Include <sstream>menggunakan namespace std;int main (){
  
string mystr;
  
mengapung harga = 0;
  
int jumlah = 0;

  
cout << "Masukkan Harga:";
  
getline (cin, mystr);
  
stringstream (mystr) >> harga;
  
cout << "Masukkan kuantitas:";
  
getline (cin, mystr);
  
stringstream (mystr) >> kuantitas;
  
cout << "Total harga:" << Harga * kuantitas << endl;
  
return 0;}Masukkan Harga: 22.25Masukkan kuantitas: 7Total harga: 155.75Dalam contoh ini, kita mendapatkan nilai numerik dari input standar secara tidak langsung. Alih-alih nilai numerik untuk penggalian langsung dari input standar, kita mendapatkan baris dari input standar (cin) menjadi obyek string (mystr), dan kemudian kita mengekstrak nilai integer dari string ini ke dalam variabel bertipe int (kuantitas).Dengan menggunakan metode ini, bukan ekstraksi langsung dari nilai integer, kita memiliki kontrol lebih besar atas apa yang terjadi dengan nilai numerik input dari pengguna, karena kita memisahkan proses untuk mendapatkan masukan dari pengguna (sekarang kita hanya meminta baris) dengan penafsiran masukan itu. Oleh karena itu, metode ini biasanya lebih suka untuk mendapatkan nilai numerik dari pengguna dalam semua program yang intensif di input pengguna.
/[ 0 komentar Untuk Artikel Operator Input Dan Output Pada C++]\

Posting Komentar