Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Mengesahkan Input Pengguna dengan Teguh sebagai Double dalam C?

Bagaimana untuk Mengesahkan Input Pengguna dengan Teguh sebagai Double dalam C?

Susan Sarandon
Lepaskan: 2024-12-22 20:54:10
asal
296 orang telah melayarinya

How to Robustly Validate User Input as a Double in C  ?

Mengesahkan Input Pengguna sebagai Double dalam C

Satu tugas pengaturcaraan biasa ialah untuk mengesahkan input pengguna untuk memastikan ia memenuhi kriteria tertentu. Satu kriteria sedemikian ialah memastikan input ialah nombor titik terapung yang sah, khususnya dua kali ganda. Begini cara anda boleh mendekati pengesahan ini dalam C :

Pendekatan Pengesahan Asas

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

Kod ini menyediakan pengesahan asas dengan cuba membaca dua kali daripada input standard. Jika input berjaya dibaca, anda meneruskan program. Jika tidak, mesej ralat dipaparkan.

Membetulkan Gelung Input Infinite

Walau bagaimanapun, kod di atas mungkin menyebabkan program mengeluarkan mesej ralat secara berterusan walaupun untuk input yang sah. Ini kerana cin >> baris x gagal pada input tidak sah, meninggalkan bendera ralat ditetapkan dalam aliran input. Untuk menyelesaikan isu ini, anda perlu mengosongkan keadaan ralat selepas input tidak sah dikesan.

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

Barisan cin.clear() mengosongkan bendera ralat dan gelung kosong seterusnya menggunakan aksara tidak sah yang tinggal pada baris input. Ini memastikan percubaan input seterusnya bermula dengan catatan yang bersih.

Dengan mengikuti langkah ini, anda boleh mengesahkan input pengguna dengan berkesan sebagai dua kali ganda dalam C , menyediakan mekanisme pengesahan input yang mantap dan mesra pengguna.

Atas ialah kandungan terperinci Bagaimana untuk Mengesahkan Input Pengguna dengan Teguh sebagai Double dalam C?. 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