입력 유효성 검사 강화: 숫자 입력만 허용
cin을 사용하여 사용자 입력을 받을 때, 특히 처리할 때 데이터 정확성을 강화하는 것이 중요합니다. 숫자 값으로. 제공된 코드에서 "1x"의 "x"와 같은 숫자가 아닌 문자가 무시되는 문제가 발생하여 잠재적으로 잘못된 결과가 발생할 수 있습니다.
강력한 솔루션
이 문제를 해결하기 위한 보다 철저한 접근 방식은 std::getline 및 std::string을 사용하여 숫자가 아닌 문자를 포함하여 전체 입력 줄을 캡처하는 것입니다. 다음 향상된 코드 조각은 이 접근 방식을 보여줍니다.
#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; }
구현 설명
결론
이 향상된 접근 방식을 사용하면 숫자가 아닌 문자를 입력하려는 모든 시도가 잘못된 입력으로 표시되고 사용자는 유효한 숫자를 다시 입력하라는 메시지가 표시됩니다. 이 솔루션은 원래 코드에 나타난 문제를 효과적으로 해결하여 입력 줄에 숫자가 아닌 문자가 추가되더라도 유효한 숫자 입력만 허용되도록 합니다.
위 내용은 C의 `cin`을 사용하여 숫자 입력만 보장하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!