Dalam C , pengesahan input adalah penting untuk mengendalikan input pengguna yang tidak dijangka atau tidak betul. Ini memastikan program anda boleh mengendalikan senario input yang pelbagai dan mengelakkan kemungkinan ralat.
Pertimbangkan situasi di mana program anda meminta integer tetapi sebaliknya menerima aksara. Untuk mengelakkan gelung tak terhingga yang disebabkan oleh ketidakpadanan ini, adalah penting untuk mengosongkan bendera input buruk yang ditetapkan oleh std::cin dan buang input tidak sah.
// Clear bad input flag and discard invalid input while (std::cout << "Enter a number" && !(std::cin >> num)) { std::cin.clear(); // Clear bad input flag std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); // Discard input std::cout << "Invalid input; please re-enter.\n"; }
Coretan kod ini menyemak jika operasi input gagal, kemudian mengosongkan bendera input buruk menggunakan std::cin.clear() dan membuang input tidak sah dengan std::cin.ignore(). Dengan menggelung sehingga input yang sah diterima, atur cara anda boleh menghalang gelung tak terhingga dan mengendalikan input tidak sah dengan anggun.
Sebagai alternatif, anda boleh menangkap input sebagai rentetan dan menukarnya kepada integer menggunakan std::stoi atau kaedah lain yang membolehkan pengesahan penukaran. Pendekatan ini memberikan fleksibiliti dalam mengendalikan pelbagai senario input.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengendalikan Input Tidak Sah dalam C dengan Anggun?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!