Rumah >pembangunan bahagian belakang >C++ >Apakah Perbezaan Utama Antara `std::cin` dan `std::cin.getline()` dalam C ?
Memahami Perbezaan Antara std::cin.getline() dan std::cin
Apabila bekerja dengan input dan output dalam C , adalah penting untuk memahami nuansa antara std::cin.getline() dan std::cin. Walaupun kedua-duanya tergolong dalam objek input standard std::cin, ia mempunyai tujuan yang berbeza dan mengendalikan input secara berbeza.
std::cin.getline()
Mari kita membedah std::cin.getline(). Ruang nama std:: menempatkan koleksi luas perpustakaan standard jenis, fungsi dan objek. std::cin ialah satu objek sedemikian yang mewakili input aksara standard. Ia menawarkan kaedah dan fungsi untuk mengekstrak aksara daripada input standard.
std::cin.getline() ialah kaedah std::cin yang mendapatkan semula baris aksara daripada objek di sebelah kirinya (di sini, std ::cin). Ia terus membaca aksara sehingga ia menemui aksara baris baharu (n), mencapai bilangan maksimum aksara yang ditentukan atau kehabisan input.
std::cin vs. std::cin.getline( )
Perbezaan utama antara std::cin dan std::cin.getline() terletak pada cara mereka mengendalikan ruang putih dan aksara baris baharu:
Contoh Penggunaan
Memahami perbezaan ini menjadi penting apabila bekerja dengan rentetan dan input yang mungkin sertakan ruang atau pemisah baris. Contohnya:
string name; int age; // Read a single word from std::cin std::cin >> name; // Suppose John // Read the next line of input std::string line; std::getline(std::cin, line); // Suppose "is 25 years old" // Extract the age from the line age = std::stoi(line.substr(line.find("is") + 3, line.find("years") - 5)); // Extract "25"
Dalam contoh ini, kami menggunakan std::cin untuk membaca satu perkataan (nama), kemudian gunakan std::cin.getline() untuk membaca keseluruhan baris berikut. Ambil perhatian bahawa jika kami telah menggunakan std::cin untuk membaca baris yang mengandungi umur, ia hanya akan mengekstrak "25" tanpa teks di sekelilingnya.
Kesimpulan
Memahami perbezaan antara std::cin.getline() dan std::cin adalah amat diperlukan apabila berurusan dengan input yang termasuk ruang putih atau pemisah baris. Dengan memahami gelagat mereka yang berbeza, pembangun boleh mendapatkan semula bahagian input tertentu secara berkesan dan mengelakkan kemungkinan kekaburan dalam pemprosesan data.
Atas ialah kandungan terperinci Apakah Perbezaan Utama Antara `std::cin` dan `std::cin.getline()` dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!