Bagaimana untuk Mengesahkan Input Numerik dalam C Menggunakan failbit?

DDD
Lepaskan: 2024-11-15 11:50:02
asal
838 orang telah melayarinya

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
}
Salin selepas log masuk

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
Salin selepas log masuk

Baris ini akan membaca dan membuang semua aksara sehingga aksara baris baharu ('n') seterusnya, dengan berkesan mengosongkan input yang buruk.

Mengendalikan Input Tidak Sah

Setelah input yang 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;
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan