Rumah > pembangunan bahagian belakang > C++ > Mengapa Mencampurkan Operator `getline` dan `>>` Menyebabkan Peninggalan Input dalam C ?

Mengapa Mencampurkan Operator `getline` dan `>>` Menyebabkan Peninggalan Input dalam C ?

DDD
Lepaskan: 2024-11-29 15:13:10
asal
891 orang telah melayarinya

Why Does Mixing `getline` and `>>` Operator Menyebabkan Peninggalan Input dalam C ?
>` Operator Menyebabkan Peninggalan Input dalam C ? " />

Mencampurkan getline dan Operator>> Menyebabkan Kelalaian Input

Kod ini menghadapi masalah semasa cuba mendapatkan input pengguna untuk harga jaket menggunakan getline. Walaupun menggesa pengguna, input tidak dikumpul, dan nilai awal "0" sebaliknya digunakan.

Masalah asas terletak pada gabungan operator >> dan penggunaan getline Apabila menggunakan operator>>, data pengguna dimasukkan, diikuti dengan kekunci Enter, yang memasukkan aksara baris baharu. penampan input Walau bagaimanapun, operator>> dipisahkan ruang putih, bermakna aksara baris baharu tidak diberikan kepada pembolehubah dan kekal dalam penimbal.

Seterusnya, apabila getline dipanggil, ia segera mencari aksara baris baharu dalam penimbal, memenuhi kriteria cariannya, tanpa menggesa pengguna untuk input.

Penyelesaian

Untuk menyelesaikan isu ini, pertimbangkan perkara berikut pilihan:

  1. Gunakan abaikan atau Dummy Call untuk mendapatkan talian: Panggil abaikan atau lakukan panggilan getline tiruan untuk menghapuskan aksara baris baharu daripada penimbal selepas menggunakan operator>>.
  2. Gunakan getline secara eksklusif: Hapuskan operator>> dan hanya bergantung pada getline. Kemudian, tukar rentetan anda kepada jenis data yang diingini menggunakan fungsi seperti stoi atau stod untuk integer dan beregu, masing-masing. Pendekatan ini meningkatkan kestabilan dan keteguhan kod.

Atas ialah kandungan terperinci Mengapa Mencampurkan Operator `getline` dan `>>` Menyebabkan Peninggalan Input 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan