Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Mengesahkan Input Berganda dalam C dengan betul?

Bagaimana untuk Mengesahkan Input Berganda dalam C dengan betul?

Linda Hamilton
Lepaskan: 2024-11-27 15:01:11
asal
1003 orang telah melayarinya

How to Properly Validate Double Input in C  ?

Cara Mengesahkan Input Pengguna sebagai Double dalam C

Apabila bekerja dengan input pengguna, adalah penting untuk mengesahkan input untuk memastikan kesahihannya . Dalam C , mengesahkan input pengguna sebagai dua kali ganda boleh dicapai melalui pelbagai kaedah. Satu pendekatan biasa ialah menggunakan pengendali cin, seperti yang ditunjukkan dalam coretan kod di bawah:

double x;

while (1) {
    cout << ">";
    if (cin >> x) {
        // valid number
        break;
    } else {
        // not a valid number
        cout << "Invalid Input! Please input a numerical value." << endl;
    }
}
Salin selepas log masuk

Walau bagaimanapun, kod ini mungkin menghadapi masalah apabila ia terus mengeluarkan "Input Tidak Sah!" kenyataan, melarangnya daripada menggesa input lain. Untuk menangani perkara ini, pengubahsuaian berikut boleh dibuat:

...
else {
    // not a valid number
    cout << "Invalid Input! Please input a numerical value." << endl;
    cin.clear();
    while (cin.get() != '\n') ; // empty loop
}
...
Salin selepas log masuk

Pengubahsuaian ini termasuk dua langkah penting:

  1. Membersihkan Keadaan Ralat: cin.clear () digunakan untuk mengosongkan keadaan ralat yang telah ditetapkan apabila input tidak sah ditemui. Ini membolehkan atur cara meneruskan membaca input tanpa mengganggu bendera ralat.
  2. Gelung Kosong: Sementara (cin.get() != 'n') ; gelung ialah gelung kosong yang menggunakan baki aksara yang dimasukkan pada baris yang sama dengan input yang tidak sah. Ini memastikan bahawa sebarang aksara yang tidak sah dialih keluar daripada penimbal input dan program bersedia untuk membaca input seterusnya.

Atas ialah kandungan terperinci Bagaimana untuk Mengesahkan Input Berganda dalam C dengan betul?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan