GitHunt
AM

AmrTamerTech/clsInput_Validation_Library-CPP

A C++ library for validating user input, including numeric range checks, date validation, and safe string reading. It ensures robust and error-free input handling in console applications.

๐Ÿ“Œ C++ Input Validation Library (clsInputValidate) โšก

A lightweight and efficient C++ utility class designed to validate user input, ensuring data integrity and seamless error handling. This library provides robust number and date validation functions for console applications. ๐Ÿš€


๐ŸŒŸ Project Overview

The clsInputValidate class helps developers ensure that user input meets required constraints, preventing invalid entries and enhancing program reliability. It includes functionalities such as:

โœ”๏ธ Numeric validation: Ensures input falls within a valid range.
โœ”๏ธ Date validation: Checks if a date is valid and falls within a given range.
โœ”๏ธ User input handling: Reads and processes numbers and strings safely.
โœ”๏ธ Error handling: Prevents incorrect inputs and prompts re-entry.

This class is designed for C++ console-based applications that require user input validation.


โœจ Features

๐Ÿ”ข Numeric Validation

โœ… IsNumberBetween(Number, From, To): Checks if a number is within a specified range.
โœ… ReadNumber<T>(): Reads a number from user input and ensures validity.
โœ… ReadNumberBetween<T>(From, To): Reads a number and validates it against a given range.

๐Ÿ“… Date Validation

โœ… IsDateBetween(Date, DateFrom, DateTo): Verifies if a date is within a given range.
โœ… IsValidDate(Date): Ensures that a given date is valid.

๐Ÿ–Š๏ธ User Input Handling

โœ… ReadShortNumber(): Reads a short value from the user.
โœ… ReadIntNumber(): Reads an int value from the user.
โœ… ReadFloatNumber(): Reads a float value from the user.
โœ… ReadDoubleNumber(): Reads a double value from the user.
โœ… ReadString(): Reads and returns a string input from the user.


๐Ÿš€ How It Works

๐Ÿ”น Numeric Validation

  • Uses template functions for flexible number validation.
  • Ensures numbers fall within a valid range before returning them.

๐Ÿ”น User Input Handling

  • Uses cin, cin.clear(), and cin.ignore() to manage incorrect inputs.
  • Prevents crashes by properly handling invalid input formats.

๐Ÿ”น Date Handling

  • Utilizes the clsDate class to compare and validate date values.
  • Allows date range validation by checking if a date is between two others.

๐Ÿ“š Potential Enhancements

๐Ÿ›  Extended Error Handling: More detailed error messages for invalid input cases.
๐Ÿ—„ Logging Support: Store incorrect attempts for debugging or analytics.
๐Ÿ”„ Customizable Validation Rules: Allow developers to define custom validation rules dynamically.
๐ŸŒŽ Localization Support: Multi-language error messages for international applications.


โš™๏ธ Technologies Used

  • Language: C++
  • Concepts: Template functions, Input handling, Error validation
  • Libraries: <iostream>, <string>, <limits>

๐ŸŽฏ Learning Outcomes

โœ”๏ธ Robust input validation techniques
โœ”๏ธ Template function usage for flexible validation
โœ”๏ธ Error handling using input clearing and ignoring methods
โœ”๏ธ Date validation with structured logic
โœ”๏ธ Efficient and reusable C++ code


๐Ÿ›  Installation & Usage

๐Ÿ“ฅ Clone the Repository

git clone https://github.com/AmrTamerDev/clsInput_Validation_Library-CPP.git
cd clsInput_Validation_Library-CPP

๐Ÿ“œ License

This project is open-source. Feel free to fork, modify, and use it in your own C++ applications! ๐ŸŽ‰


๐Ÿค Contributions

Contributions are welcome! If you have improvements or additional features to add, submit a Pull Request ๐Ÿš€