Meningkatkan Pengesahan Input: Menerima Input Berangka Sahaja
Apabila menggunakan cin untuk menerima input pengguna, adalah penting untuk menguatkuasakan ketepatan data, terutamanya apabila berurusan dengan nilai angka. Kod yang disediakan menghadapi isu di mana aksara bukan angka, seperti "x" dalam "1x," diabaikan, yang berpotensi membawa kepada hasil yang salah.
Penyelesaian Teguh
Untuk membetulkan isu ini, pendekatan yang lebih teliti ialah menggunakan std::getline dan std::string untuk menangkap keseluruhan baris input, termasuk sebarang aksara bukan angka. Coretan kod dipertingkat berikut menunjukkan pendekatan ini:
#include <string> #include <sstream> double enter_number() { double number; std::string line; while (std::getline(std::cin, line)) { std::stringstream ss(line); if (ss >> number) { if (ss.eof()) { // Success break; } } std::cout << "Invalid input" << std::endl; std::cout << "Try again" << std::endl; } return number; }
Menjelaskan Pelaksanaan
Kesimpulan
Dengan pendekatan yang dipertingkatkan ini, sebarang percubaan untuk memasukkan aksara bukan angka akan dibenderakan sebagai tidak sah input, dan pengguna akan digesa untuk memasukkan semula nombor yang sah. Penyelesaian ini berkesan menangani isu yang dibentangkan dalam kod asal, memastikan bahawa hanya input berangka yang sah diterima, tanpa mengira sebarang aksara bukan angka tambahan dalam baris input.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memastikan Input Berangka Hanya Menggunakan `cin` C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!