Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mengesahkan Input Numerik dalam C Menggunakan failbit?
Mengesahkan Input Angka dalam C
Mengesahkan input pengguna adalah penting untuk sebarang program yang menerima nilai berangka. Dalam C , satu pendekatan untuk menyemak sama ada input adalah berangka adalah dengan menggunakan ciri failbit aliran input, cin.
Menyemak Kesahan Input dengan failbit
Apabila cin menemui input yang tidak sah, ia menetapkan failbit pada aliran input. Untuk menyemak keadaan ini, anda boleh menggunakan sintaks berikut:
int n; cin >> n; if (!cin) // or if (cin.fail()) { // User did not input a number cin.clear(); // Reset failbit }
Jika failbit ditetapkan, ini menunjukkan bahawa input bukan nombor yang sah. Dalam kes ini, anda harus menetapkan semula failbit menggunakan cin.clear() untuk mengosongkan keadaan ralat.
Mengosongkan Input Buruk dengan cin.ignore()
Selepas mengosongkan failbit, anda perlu membuang input tidak sah daripada strim menggunakan cin.ignore():
cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); // Skip bad input
Ini baris akan membaca dan membuang semua aksara sehingga aksara baris baharu seterusnya ('n'), dengan berkesan mengosongkan input buruk.
Mengendalikan Input Tidak Sah
Setelah input buruk telah dikosongkan, anda boleh menggesa pengguna untuk memasukkan semula input. Ini boleh dilakukan menggunakan gelung yang berterusan sehingga input yang sah diterima:
while (cin.fail()) { // User input was invalid cin.clear(); cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); // Prompt user to re-enter input cout << "Invalid input. Please enter a valid number: "; cin >> n; }
Dengan memanfaatkan kaedah failbit dan cin.ignore(), anda boleh mengesahkan input berangka dengan berkesan dalam C , memastikan program anda mengendalikan kedua-dua input pengguna yang sah dan tidak sah dengan anggun.
Atas ialah kandungan terperinci Bagaimana untuk Mengesahkan Input Numerik dalam C Menggunakan failbit?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!