Mengendalikan Input Jenis Data yang Salah dalam C
Dalam C , input jenis data yang salah boleh membawa kepada gelung tak terhingga apabila program gagal memproses input daripada jenis yang dijangkakan. Sebagai contoh, jika integer diminta tetapi aksara dimasukkan, atur cara mungkin memasuki gelung input yang tidak berkesudahan.
Penyelesaian:
Isu asas ialah tetapan "bendera input buruk" dalam std::cin apabila input tidak mematuhi jenis yang diharapkan. Untuk menangani perkara ini:
Coretan kod berikut menunjukkan penyelesaian ini:
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"; }
Gelung kod ini berterusan sehingga input yang sah diberikan.
Sebagai alternatif , seseorang boleh mendapatkan input sebagai rentetan dan menukarnya kepada integer menggunakan std::stoi atau kaedah serupa yang membolehkan penukaran pengesahan.
Atas ialah kandungan terperinci Bagaimana untuk Mengendalikan Input Jenis Data yang Salah dan Mengelakkan Gelung Infinite dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!