Cara Menangani Input Jenis Data yang Ralat
Dalam C , menangani input tidak sah adalah penting untuk mengekalkan integriti program. Sebagai contoh, apabila meminta integer dan menghadapi input aksara, atur cara harus menangani ralat dengan anggun dan meminta input yang betul sekali lagi. Walau bagaimanapun, menghadapi input daripada jenis yang tidak dijangka boleh membawa kepada gelung tak terhingga.
Sebab Gelung Tak Terhingga
Gelung tak terhingga timbul kerana bendera "input buruk" strim input ialah ditetapkan apabila input yang dijangkakan tidak diterima. Bendera input buruk mesti dikosongkan secara manual dan input yang salah dibuang daripada penimbal strim.
Penyelesaian Menggunakan Pengesahan Input
Untuk mengelakkan gelung tak terhingga, gunakan yang berikut pendekatan:
// Loop if input fails (e.g., no characters were read) while (std::cout << "Enter a number" && !(std::cin >> num)) { std::cin.clear(); // Clear the bad input flag std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); // Discard the input std::cout << "Invalid input; please re-enter.\n"; }
Input Alternatif Pendekatan
Daripada menggunakan pengesahan input, anda boleh mendapatkan input sebagai rentetan dan kemudian cuba menukarnya kepada integer menggunakan std::stoi atau kaedah serupa yang menyediakan semakan status penukaran.
Atas ialah kandungan terperinci Bagaimana untuk Mencegah Gelung Infinite Apabila Mengendalikan Input Jenis Data yang Salah dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!