Rumah >pembangunan bahagian belakang >C++ >Bagaimana Mengesahkan Input Pengguna Berganda dalam C dengan Betul?

Bagaimana Mengesahkan Input Pengguna Berganda dalam C dengan Betul?

Susan Sarandon
Susan Sarandonasal
2024-12-01 20:44:14582semak imbas

How to Properly Validate Double User Input in C  ?

Mengesahkan Input Pengguna sebagai Double dalam C

Memastikan ketepatan input pengguna adalah penting apabila bekerja dengan data berangka. Artikel ini meneroka cara untuk mengesahkan input pengguna secara berkesan sebagai double dalam C .

Memahami Masalah:

Kod yang disediakan cuba untuk mengesahkan input pengguna sebagai double. Walau bagaimanapun, ia gagal menggesa input seterusnya jika input tidak sah, mengakibatkan gelung mesej ralat yang tidak terhingga.

Penyelesaian:

Untuk menangani isu ini, ia adalah perlu untuk mengosongkan keadaan ralat dan membuang sebarang aksara tidak sah yang dimasukkan sebelum ini. Ini boleh dicapai menggunakan kod berikut:

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

Dalam kod yang diubah suai ini:

  • cin.clear(): Membersihkan keadaan ralat.
  • semasa (cin.get() != 'n') ;: Membuang semua aksara tidak sah yang dimasukkan pada baris sebelumnya. Gelung ini berterusan sehingga aksara baris baharu ('n') ditemui, mengosongkan penimbal input dengan berkesan.

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