0
vector<string> guess(4);
		
	

		cout << "Input a Guess(e.g red blue green yellow): ";
		
        cin >> guess[0] >> guess[1] >> guess[2] >> guess[3];

this is part of my code to let the user input 4 different guesses, is there anyway I can limit the input by 4 so that if the user inputs more or less than 4 it would be invalid?
the input are basically strings

Edited by ashboi: n/a

2
Contributors
3
Replies
4
Views
4 Years
Discussion Span
Last Post by thines01
0

Why don't you use a counter and increment it when you get valid answers?
When it hits 4, drop out of the loop.

You could also just check to see if any of your variables is null (less than 4 condition).

If there are more than 4, could you ignore any additional input?

0

sorry, as I'm still quite new to C++, could you provide an example?
thanks alot

0

Something like this:

#include <iostream>
#include <istream>
#include <vector>
using namespace std;

bool isValid(string str)
{
   /*
      do some type of check to make sure str is valid
      ...like comparing it to a know color list
   */
   return true;
}

int main(void)
{
   vector<string> vecGuess;
   char strTemp[128] = {0};
   
   for(int i =0; i < 4; i++)
   {
      cout << "guess #" << (i+1);
      cin >> strTemp;

      if(!isValid(strTemp))
      {
         cout << "not valid" << endl;
         i--;
         continue;
      }

      vecGuess.push_back(strTemp);
   }

   return 0;
}

You will need to validate what the user enters in the isValid() function.

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.