Mengendalikan Input Jenis Data yang Salah dalam C
Memastikan bahawa pengguna menyediakan jenis data yang sesuai adalah penting untuk mencegah kelakuan yang tidak dijangka dan gelung yang tidak terhingga. Dalam C , pengendalian input yang salah boleh menjadi mencabar.
Pernyataan Masalah:
Apabila atur cara menjangkakan input integer dan pengguna memasukkan aksara, atur cara memasuki infiniti gelung. Sebaliknya, isu yang sama berlaku apabila integer dijangka tetapi aksara dimasukkan.
Penyelesaian:
Gelung tak terhingga berlaku kerana input buruk fungsi std::cin bendera ditetapkan apabila input gagal. Untuk menyelesaikannya, kita perlu:
Berikut ialah contoh coretan kod:
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"; }
Kod ini berpusing sehingga pengguna memasukkan nombor yang sah. Ia mengosongkan bendera input buruk, membuang input tidak sah dan menggesa pengguna untuk mencuba lagi.
Pendekatan Alternatif:
Daripada menggunakan std::cin, anda juga boleh mendapatkan input sebagai rentetan dan menukarnya kepada integer menggunakan std::stoi. Pendekatan ini membolehkan anda mengesahkan penukaran sebelum memberikan input kepada pembolehubah integer.
Atas ialah kandungan terperinci Bagaimana untuk Mencegah Gelung Infinite daripada Input Jenis Data yang Salah dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!