Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mengesahkan Input Numerik dalam C Menggunakan failbit?

Bagaimana untuk Mengesahkan Input Numerik dalam C Menggunakan failbit?

DDD
DDDasal
2024-11-15 11:50:02906semak imbas

How to Validate Numeric Input in C   Using the 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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn