>`? " />
getline() dan Input Console dalam C
Dalam C , fungsi getline() digunakan untuk mengekstrak baris teks daripada strim, biasanya konsol, bagaimanapun, apabila digunakan beberapa kali dalam satu gelung, ia mungkin berkelakuan tanpa diduga.
Masalah:
Apabila cuba mengumpul input pengguna menggunakan getline() untuk rentetan dan >> untuk integer dan beregu, pengguna tidak dapat memasukkan rentetan pertama Sebaliknya, kursor konsol melompat ke gesaan input seterusnya selepas getline() kedua panggilan.
Penjelasan:
Isu ini berpunca daripada pencampuran operator getline() dan >> aksara bukan ruang putih Walau bagaimanapun, ia meninggalkan aksara baris baharu (n) dalam strim input.
Apabila getline() dipanggil selepas >>, ia membaca aksara baris baharu sebagai rentetan kosong, mengakibatkan tingkah laku yang tidak diingini.
Penyelesaian:
string line; getline(cin, line); int value = stoi(line); // Parse the number from the string
Atas ialah kandungan terperinci Mengapakah getline() Berkelakuan Tidak Dijangka dalam Gelung Selepas Menggunakan `>>`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!