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

Bagaimana untuk Mengesahkan Input Berganda dalam C ?

Barbara Streisand
Barbara Streisandasal
2024-12-10 15:43:09250semak imbas

How to Reliably Validate Double Input in C  ?

Mengesahkan Input Pengguna sebagai Double dalam C

Mengesahkan input pengguna untuk memastikan integritinya adalah penting dalam pengaturcaraan C. Apabila berurusan dengan nilai titik terapung, adalah penting untuk mengesahkan bahawa input itu sememangnya berganda.

Pertimbangkan coretan kod berikut yang secara berulang menggesa pengguna untuk berganda:

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;
    }
}

Walau bagaimanapun, kod yang disediakan mengandungi kecacatan: jika pengguna memasukkan input yang tidak sah, pernyataan if akan gagal dan blok else akan memaparkan mesej ralat. Walau bagaimanapun, program ini tidak akan menggesa pengguna untuk input sekali lagi, mengakibatkan gelung mesej ralat yang tidak terhingga.

Untuk menyelesaikan isu ini, kami boleh menggunakan fungsi cin.clear() untuk mengosongkan keadaan ralat dan manakala (cin.get() != 'n'); gelung untuk mengosongkan penimbal input. Dengan cara ini, apabila input tidak sah ditemui, program akan memaparkan mesej ralat, mengosongkan keadaan ralat, membuang input tidak sah dan menggesa pengguna untuk input yang sah.

Atas ialah kandungan terperinci Bagaimana untuk Mengesahkan Input Berganda dalam C ?. 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