>` dalam C ? " />
Memahami getline() dalam C
Apabila menggunakan kaedah getline() untuk mendapatkan semula input pengguna dalam C , adalah penting untuk mengingati isu biasa yang timbul. Apabila digunakan serta-merta selepas menggunakan cin dengan operator >> dengan betul.
Masalahnya:
Mari kita pertimbangkan coretan kod berikut:
string messageVar; cout << "Type your message: "; getline(cin, messageVar);
Dalam kod ini, dijangkakan getline() akan membaca input pengguna dan menyimpannya dalam messageVar Walau bagaimanapun, dalam kes tertentu, getline() berhenti lebih awal, meninggalkan messageVar kosong.
Penyelesaian:
Untuk menyelesaikan isu ini, adalah perlu untuk membuang aksara baris baharu yang tertinggal dalam penimbal input daripada cin sebelumnya >> operasi ini boleh dicapai menggunakan cin.ignore():
string messageVar; cout << "Type your message: "; cin.ignore(); getline(cin, messageVar);
Sebab untuk Isu:
Apabila menggunakan operator >> ia membaca input sehingga aksara ruang putih (cth., ruang atau baris baharu) ditemui, ia meninggalkan aksara baris baharu dalam penimbal input, menyebabkan getline() untuk berhenti membaca kerana ia mentafsir baris baharu sebagai penghujung input. Dengan menggunakan cin.ignore(), aksara baris baharu dialih keluar daripada penimbal, membolehkan getline() berfungsi dengan betul.
Atas ialah kandungan terperinci Mengapakah `getline()` Gagal Selepas Menggunakan `cin` dengan `>>` dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!