The unhacky way to solve invalid input is to put the input into a string and use stoi (string to int), which will throw an exception.
If you hate exceptions you can use the Cstyle way of strtol, but this uses errno (it is not very pretty).
Otherwise you can do something like this:
https://en.cppreference.com/w/cpp/io/basic_istream/ignore
You can also use !(cin >> input) instead of checking failbit, but you need to clear and ignore like above to fix it.
Or something like this, and you have to fix it if you want to use it again.
https://en.cppreference.com/w/cpp/io/basic_ios/exceptions
The reason why I consider these hacky is because you need to fix cin every time.
Also that was completely off the context of OP's question, since OP already has a functional input system (at least I think).
OP, just create a function that prints the info for the USER class, and loop through it to print all the private strings.
Also don't use arrays, use std::list or vector, if you did, you wouldn't need to set every option, just call the constructor setting it all in one, and you don't need 3 lists for every property, just 1 since every user has all 3 properties. And you don't need to loop through a for loop 3 times to enter a user, and why do you check if the option is not equal to 1 when you should be checking if the option is not equal to 4... what are you thinking? Also always do ++x never x++, you will thank me later.