fork download
  1. bool UserInput::validate(istream &cinINPUT, int &reINPUT, int a){
  2. done = true;
  3. if ( !(cinINPUT >> reINPUT) ){ // cin >> in1 returns true if it matches data container
  4. cin.clear(); // clear input cache
  5. cin.ignore(numeric_limits<streamsize>::max(), '\n'); // ignore anything in buffer
  6. done=false; // Set return to FAIL
  7.  
  8. }else if ( cin.peek() != '\n'){ // Read next digit in Stream, if it is NOT a new line, then error
  9. cin.clear(); // clear input cache
  10. cin.ignore(numeric_limits<streamsize>::max(), '\n'); // ignore anything in buffer
  11. done=false; // Set return to FAIL
  12.  
  13. }else if ( reINPUT > a || reINPUT < 1 ){ // Test if input is out of range
  14. cin.clear(); // clear input cache
  15. cin.ignore(numeric_limits<streamsize>::max(), '\n'); // ignore anything in buffer
  16. done=false; // Set return to FAIL
  17.  
  18. }else{
  19. cin.clear(); // clear input cache
  20. cin.ignore(numeric_limits<streamsize>::max(), '\n'); // ignore anything in buffer
  21. done=true;} // If everything is cool and it is clean input - Set return to TRUE
  22.  
  23. return (done); //Returns a BOOL value for if input is valid. +the reference changes the user variable in1/in2.
  24. }
Not running #stdin #stdout 0s 0KB
stdin
Standard input is empty
stdout
Standard output is empty