Rumah > pembangunan bahagian belakang > C++ > Apakah Perbezaan Antara `std::cin` dan `std::cin.getline()` untuk Membaca Rentetan dalam C ?

Apakah Perbezaan Antara `std::cin` dan `std::cin.getline()` untuk Membaca Rentetan dalam C ?

Patricia Arquette
Lepaskan: 2024-12-14 00:09:11
asal
383 orang telah melayarinya

What's the Difference Between `std::cin` and `std::cin.getline()` for Reading Strings in C  ?

Memahami std::cin.getline() dan Perbezaannya daripada std::cin

std::iostream menyediakan pelbagai jenis mekanisme untuk operasi input/output. Antaranya, std::cin berfungsi sebagai objek input standard, menawarkan kaedah dan fungsi untuk mengakses data aksara. Walau bagaimanapun, apabila merujuk kepada membaca rentetan atau baris, utiliti std::cin diatasi oleh kaedah khusus std::cin.getline().

std::cin.getline() : Menyelami Fungsinya

std::cin.getline() ialah kaedah unik untuk std::cin dan yang serupa objek yang membolehkan pembacaan data aksara yang cekap. Ia beroperasi pada dua argumen: kiraan aksara maksimum dan destinasi tempat data yang dibaca disimpan.

Kaedah ini menamatkan proses pembacaan di bawah tiga keadaan berbeza:

  1. Menghadapi penghujung baris
  2. Kehabisan aksara input yang tersedia
  3. Mencapai aksara maksimum yang ditentukan had

Membezakan std::cin daripada std::cin.getline()

Sementara std::cin menyediakan cara yang mudah untuk membaca aksara individu, ia tidak mempunyai keupayaan untuk mengendalikan input berasaskan talian dengan anggun. std::cin.getline() mengisi jurang ini dengan mengkhusus dalam membaca keseluruhan baris aksara, memastikan rentetan atau input berbilang perkataan ditangkap dengan tepat.

Pilihan Input Alternatif Menggunakan std::cin

Selain std::cin.getline(), std::cin menyokong pelbagai yang lain kaedah input, termasuk:

  • std::cin >> s; - Membaca satu perkataan ke dalam pembolehubah rentetan 's'
  • std::cin >> i; - Membaca nombor tunggal ke dalam pembolehubah integer 'i'
  • std::getline(std::cin, s); - Membaca keseluruhan baris ke dalam pembolehubah rentetan 's' (bersamaan dengan std::cin.getline() tanpa had aksara)
  • std::cin.ignore(100); - Melangkau 100 aksara seterusnya dalam aliran input

Atas ialah kandungan terperinci Apakah Perbezaan Antara `std::cin` dan `std::cin.getline()` untuk Membaca Rentetan dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan