This is just a portion of my code and I know everything else works properly, but I need the code to check and see if the user entered a valid input (either 'H', 'S', or 'C'). I want the program to loop until the user inputs a valid variable, but when the user initially puts in one of the variables the program just hangs. It works fine if the user enters an invalid answer (it loops until a valid answer is entered) but then hangs again. Any ideas? I'm thinking the while loop is the issue...how do I get it to work? Thanks.
Code:
while ( ( status = getchar() ) != 'H' || 'S' || 'C' )
{
switch ( status )
{
case 'H':
case 'h':
break;
case 'S':
case 's':
break;
case 'C':
case 'c':
break;
case '\n':
case '\t':
case ' ':
break;
default: /* Catches all characters that are not valid entries */
printf("Incorrect status value entered.\n");
printf("Enter a valid status value [H for hourly, S for salaried staff, or C for contractor]:\n");
}
}